diff --git a/base-manager-ui/admin/package.json b/base-manager-ui/admin/package.json
index f0b3842a4bc6e7c57d7c08d1a5f7b7ab20d8ea39..e9c94435b6414bbb3e4ff4c2fc56237f0d163a16 100644
--- a/base-manager-ui/admin/package.json
+++ b/base-manager-ui/admin/package.json
@@ -5,6 +5,7 @@
   "private": true,
   "scripts": {
     "serve": "vue-cli-service serve",
+    "serve2": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
     "build": "vue-cli-service build --mode production",
     "beta": "vue-cli-service build --mode beta",
     "test": "vue-cli-service build --mode test",
diff --git a/base-manager-ui/admin/src/pages/basicset/addmatter/group/addmaterials.vue b/base-manager-ui/admin/src/pages/basicset/addmatter/group/addmaterials.vue
index cca560130a23c7c9e489beb6ce7c5970dc35a435..c8f30aa3812c371cd3c9b5ee55213f3a38c17fb8 100644
--- a/base-manager-ui/admin/src/pages/basicset/addmatter/group/addmaterials.vue
+++ b/base-manager-ui/admin/src/pages/basicset/addmatter/group/addmaterials.vue
@@ -395,12 +395,13 @@ export default {
       let { uid } = info.file;
       if (code === 1) {
         let obj = {
-          uid: uid,
+          uid,
           name: fileName,
           status: "done",
           materialName: this.form.materialName,
           fileName: fileName,
-          fileUrl: this.apiUrl + url,
+          url,
+          fileUrl: url,
           filetype: num,
           source: 1,
         };
diff --git a/base-manager-ui/admin/src/pages/basicset/addmatter/group/downloadTable.vue b/base-manager-ui/admin/src/pages/basicset/addmatter/group/downloadTable.vue
index a362572e6a80f9ee3541d09cad4e767798cf0086..30dd891b66180feedc06663cf2d2d253ef5d622f 100644
--- a/base-manager-ui/admin/src/pages/basicset/addmatter/group/downloadTable.vue
+++ b/base-manager-ui/admin/src/pages/basicset/addmatter/group/downloadTable.vue
@@ -12,8 +12,8 @@
         :columns="columns"
         :data-source="tableData"
       >
-        <template slot="action" slot-scope="text">
-          <a @click="handleClick(text)">涓嬭浇</a>
+        <template slot="action" slot-scope="text, record">
+          <a :href="record.fileUrl" :download="record.fileName">涓嬭浇</a>
         </template>
       </a-table>
     </a-modal>
@@ -21,7 +21,7 @@
 </template>
 
 <script>
-import { download } from "@/services/matter";
+// import { download } from "@/services/matter";
 // import axios from "axios";
 const columns = [
   {
@@ -70,63 +70,60 @@ export default {
     },
   },
   methods: {
-    downloadByBlob(url, name) {
-      let image = new Image();
-      image.setAttribute("crossOrigin", "anonymous");
-      image.src = url;
-      image.onload = () => {
-        let canvas = document.createElement("canvas");
-        canvas.width = image.width;
-        canvas.height = image.height;
-        let ctx = canvas.getContext("2d");
-        ctx.drawImage(image, 0, 0, image.width, image.height);
-        canvas.toBlob((blob) => {
-          let url = URL.createObjectURL(blob);
-          this.download(url, name);
-          // 鐢ㄥ畬閲婃斁URL瀵硅薄
-          URL.revokeObjectURL(url);
-        });
-      };
-    },
-    download(href, name) {
-      let eleLink = document.createElement("a");
-      eleLink.style = "display: none";
-      eleLink.download = name;
-      eleLink.href = href;
-      document.body.appendChild(eleLink);
-      eleLink.click();
-      eleLink.remove();
-    },
-
-    async downloadFile(row, type) {
-      let res = await download(
-        { datumId: row.datumId },
-        { responseType: "blob" }
-      );
-      let data = res.data;
-      const blob = new Blob([data], {
-        type: type,
-      });
-      const link = document.createElement("a");
-      link.href = URL.createObjectURL(blob);
-      link.setAttribute("download", row.fileName); // 璁剧疆涓嬭浇鏂囦欢鍚嶇О
-      document.body.appendChild(link);
-      link.click();
-      link.remove();
-    },
-
-    handleClick(row) {
-      let index = row.fileUrl.lastIndexOf(".");
-      let str = row.fileUrl.slice(index + 1);
-      if (str === "png" || str === "jpg" || str === "jpeg") {
-        this.downloadByBlob(row.fileUrl, row.fileName);
-      } else {
-        this.download(row.fileUrl, row.fileName);
-      }
-    },
+    // downloadByBlob(url, name) {
+    //   let image = new Image();
+    //   image.setAttribute("crossOrigin", "anonymous");
+    //   image.src = url;
+    //   image.onload = () => {
+    //     let canvas = document.createElement("canvas");
+    //     canvas.width = image.width;
+    //     canvas.height = image.height;
+    //     let ctx = canvas.getContext("2d");
+    //     ctx.drawImage(image, 0, 0, image.width, image.height);
+    //     canvas.toBlob((blob) => {
+    //       let url = URL.createObjectURL(blob);
+    //       this.download(url, name);
+    //       // 鐢ㄥ畬閲婃斁URL瀵硅薄
+    //       URL.revokeObjectURL(url);
+    //     });
+    //   };
+    // },
+    // download(href, name) {
+    //   let eleLink = document.createElement("a");
+    //   eleLink.style = "display: none";
+    //   eleLink.download = name;
+    //   eleLink.href = href;
+    //   document.body.appendChild(eleLink);
+    //   eleLink.click();
+    //   eleLink.remove();
+    // },
+    // async downloadFile(row, type) {
+    //   let res = await download(
+    //     { datumId: row.datumId },
+    //     { responseType: "blob" }
+    //   );
+    //   let data = res.data;
+    //   const blob = new Blob([data], {
+    //     type: type,
+    //   });
+    //   const link = document.createElement("a");
+    //   link.href = URL.createObjectURL(blob);
+    //   link.setAttribute("download", row.fileName); // 璁剧疆涓嬭浇鏂囦欢鍚嶇О
+    //   document.body.appendChild(link);
+    //   link.click();
+    //   link.remove();
+    // },
+    // handleClick(row) {
+    //   let index = row.fileUrl.lastIndexOf(".");
+    //   let str = row.fileUrl.slice(index + 1);
+    //   if (str === "png" || str === "jpg" || str === "jpeg") {
+    //     this.downloadByBlob(row.fileUrl, row.fileName);
+    //   } else {
+    //     this.download(row.fileUrl, row.fileName);
+    //   }
+    // },
   },
 };
 </script>
 
-<style lang="less" scoped>
-</style>
\ No newline at end of file
+<style lang="less" scoped></style>
diff --git a/base-manager-ui/admin/src/pages/basicset/appmarket/components/AppDetailsPage.vue b/base-manager-ui/admin/src/pages/basicset/appmarket/components/AppDetailsPage.vue
index a114cd2c04d5960715925e727053763d00303f45..6ea9c38b11ef183d7504fa176352d967a1976d01 100644
--- a/base-manager-ui/admin/src/pages/basicset/appmarket/components/AppDetailsPage.vue
+++ b/base-manager-ui/admin/src/pages/basicset/appmarket/components/AppDetailsPage.vue
@@ -8,7 +8,7 @@
           width="50"
           height="50"
           v-if="appInfo.appIconPath"
-          :src="api + appInfo.appIconPath"
+          :src="appInfo.appIconPath"
         />
         <div class="name">{{ appInfo.appName }}</div>
         <div class="version">褰撳墠鐗堟湰锛歷{{ appInfo.version }}</div>
diff --git a/base-manager-ui/admin/src/pages/basicset/appmarket/components/AppTheme.vue b/base-manager-ui/admin/src/pages/basicset/appmarket/components/AppTheme.vue
index 5405d19bddefabab5a608711c9bccf98172fcd68..5ad730ab018162825a6c0b9401ee7ce7a0852cd3 100644
--- a/base-manager-ui/admin/src/pages/basicset/appmarket/components/AppTheme.vue
+++ b/base-manager-ui/admin/src/pages/basicset/appmarket/components/AppTheme.vue
@@ -49,8 +49,8 @@
           <img
             class="cover"
             v-if="text.cover"
-            :src="api2 + text.cover"
-            @click="handlePreview(api2 + text.cover)"
+            :src="text.cover"
+            @click="handlePreview(text.cover)"
           />
           <span v-else>--</span>
         </template>
@@ -132,8 +132,6 @@ export default {
   },
   data() {
     return {
-      api: process.env.VUE_APP_API_BASE_URL + "/",
-      api2: process.env.VUE_APP_API_IMG_URL,
       columns,
       siteId: local.getLocal("siteId"),
       tableData: [], // 琛ㄦ牸鏁版嵁
diff --git a/base-manager-ui/admin/src/pages/basicset/appmarket/components/DataUpdate.vue b/base-manager-ui/admin/src/pages/basicset/appmarket/components/DataUpdate.vue
index f56fab0b176043ae0749d20572d2207694f098d2..83e61c7d75558621f4d724787e26e1b6932550e5 100644
--- a/base-manager-ui/admin/src/pages/basicset/appmarket/components/DataUpdate.vue
+++ b/base-manager-ui/admin/src/pages/basicset/appmarket/components/DataUpdate.vue
@@ -83,7 +83,7 @@
             v-if="text.video"
             width="50"
             :src="filterRes(text.video)"
-            @click="handlePreview('video', api2 + text.video)"
+            @click="handlePreview('video', text.video)"
           />
           <span v-else>--</span>
         </template>
@@ -320,7 +320,7 @@ export default {
     // 杩囨护褰遍煶
     filterRes(data) {
       let resource = data.split(",").map((v) => {
-        return this.api2 + v;
+        return v;
       });
 
       return resource[0];
@@ -328,7 +328,7 @@ export default {
     // 棰勮
     handlePreview(type, data) {
       let resource = data.split(",").map((v) => {
-        return this.api2 + v;
+        return v;
       });
       if (type == "img") {
         this.$viewerApi({
diff --git a/base-manager-ui/admin/src/pages/basicset/appmarket/components/MoveApp.vue b/base-manager-ui/admin/src/pages/basicset/appmarket/components/MoveApp.vue
index d8d735b7734399ff1b03faf70ed7c6efff8144df..ba6abbabf0e861b034bf9b1a563d2a5a87d54372 100644
--- a/base-manager-ui/admin/src/pages/basicset/appmarket/components/MoveApp.vue
+++ b/base-manager-ui/admin/src/pages/basicset/appmarket/components/MoveApp.vue
@@ -56,8 +56,8 @@
             class="pointer"
             height="20"
             width="20"
-            :src="api2 + text.appIconPath"
-            @click="handlePreview(api2 + text.appIconPath)"
+            :src="text.appIconPath"
+            @click="handlePreview(text.appIconPath)"
           />
           <span v-else>--</span>
         </template>
@@ -203,7 +203,6 @@ export default {
   data() {
     return {
       api: process.env.VUE_APP_API_BASE_URL + "/",
-      api2: process.env.VUE_APP_API_IMG_URL,
       columns,
       siteId: local.getLocal("siteId"),
       tableData: [], // 琛ㄦ牸鏁版嵁
diff --git a/base-manager-ui/admin/src/pages/basicset/appmarket/components/TerminalApp.vue b/base-manager-ui/admin/src/pages/basicset/appmarket/components/TerminalApp.vue
index c4b12d99f5a1ef5e4d743d13c52311030c5f0620..ac755addcf2a63b2a72b42402a784f6f9995658d 100644
--- a/base-manager-ui/admin/src/pages/basicset/appmarket/components/TerminalApp.vue
+++ b/base-manager-ui/admin/src/pages/basicset/appmarket/components/TerminalApp.vue
@@ -56,8 +56,8 @@
             class="pointer"
             height="20"
             width="20"
-            :src="api2 + text.appIconPath"
-            @click="handlePreview(api2 + text.appIconPath)"
+            :src="text.appIconPath"
+            @click="handlePreview(text.appIconPath)"
           />
           <span v-else>--</span>
         </template>
@@ -203,7 +203,6 @@ export default {
   data() {
     return {
       api: process.env.VUE_APP_API_BASE_URL + "/",
-      api2: process.env.VUE_APP_API_IMG_URL,
       columns,
       siteId: local.getLocal("siteId"),
       tableData: [], // 琛ㄦ牸鏁版嵁
diff --git a/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddApp.vue b/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddApp.vue
index 51d6a560ee83d7ad4833216d8916897d3a3d1f12..d36ddecb4ba188a7f754a0c0ac6e8fb8b09a3b14 100644
--- a/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddApp.vue
+++ b/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddApp.vue
@@ -182,7 +182,6 @@ export default {
     return {
       accept: "image/jpeg,image/png,image/svg+xml",
       api: process.env.VUE_APP_API_BASE_URL + "/",
-      api2: process.env.VUE_APP_API_IMG_URL,
       iconFileList: [],
       labelCol: {
         span: 3,
@@ -307,17 +306,25 @@ export default {
       return isJpgOrPng && isLt5M;
     },
     // 涓婁紶鍥炬爣
-    handleChangeIcon({ fileList }) {
+    handleChangeIcon({ file, fileList }) {
+      if (
+        file.status &&
+        file.status != "removed" &&
+        file.response &&
+        file.response.code == -1
+      ) {
+        this.$message.error(file.response.msg);
+        fileList = fileList.filter((file) => file.response.code != -1);
+      }
       this.iconFileList = [...fileList].slice(-1);
       this.iconFileList = this.iconFileList.map((v) => {
         if (v.response) {
-          v.url2 = v.response.url;
-          v.url = this.api2 + v.response.url;
+          v.url = v.response.url;
         }
         return v;
       });
       if (this.iconFileList[0]) {
-        this.form.appIconPath = this.iconFileList[0].url2;
+        this.form.appIconPath = this.iconFileList[0].url;
       } else {
         this.form.appIconPath = "";
       }
@@ -330,6 +337,17 @@ export default {
     },
     // 涓婁紶搴旂敤
     handleChangeFile(info) {
+      if (
+        info.file.status &&
+        info.file.status != "removed" &&
+        info.file.response &&
+        info.file.response.code == -1
+      ) {
+        this.$message.error(info.file.response.msg);
+        info.fileList = info.fileList.filter(
+          (file) => file.response.code != -1
+        );
+      }
       let fileList = [...info.fileList];
       fileList = fileList.slice(-1);
       fileList = fileList.map((file) => {
@@ -370,8 +388,7 @@ export default {
             uid: "-2",
             name: this.form.appIconPath,
             status: "done",
-            url: this.api2 + this.form.appIconPath,
-            url2: this.form.appIconPath,
+            url: this.form.appIconPath,
           },
         ];
       });
diff --git a/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddData.vue b/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddData.vue
index a69c1635d7617b6edffb034c3437697e2847d15b..56d970097850cafa432f314dfee09bb69abd0023 100644
--- a/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddData.vue
+++ b/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddData.vue
@@ -141,6 +141,7 @@
                 :action="api + '/base/file/commonupload'"
                 :multiple="true"
                 :file-list="v.fileList"
+                :beforeUpload="handleBeforeUpload"
                 @change="
                   (info) => {
                     handleChange(info, v);
@@ -420,8 +421,43 @@ export default {
       });
       this.form = { ...data };
     },
-    // 鏂囦欢涓婁紶
+
+    // 鏇存敼鏂囦欢鍚嶇О
+    renameFile(originalFile, newName) {
+      return new File([originalFile], newName, {
+        type: originalFile.type,
+        lastModified: originalFile.lastModified,
+      });
+    },
+
+    handleBeforeUpload(file) {
+      let index = file.name.lastIndexOf(".");
+      let fileName = file.name.slice(0, index);
+      let suffix = file.name.slice(index);
+      let uid = file.uid;
+      if (fileName.length >= 40) {
+        let newName = fileName.slice(0, 40) + "..." + suffix;
+        let newFile = this.renameFile(file, newName);
+        newFile.uid = uid;
+        return new Promise((resolve) => {
+          resolve(newFile);
+        });
+      }
+    },
+
+    // 鏂囦欢涓婁紶鐘舵€佸彉鍖�
     handleChange(info, row) {
+      if (
+        info.file.status &&
+        info.file.status != "removed" &&
+        info.file.response &&
+        info.file.response.code == -1
+      ) {
+        this.$message.error(info.file.response.msg);
+        info.fileList = info.fileList.filter(
+          (file) => file.response.code != -1
+        );
+      }
       let fileList = [...info.fileList];
       // fileList = fileList.slice(-1);
       fileList = fileList.map((file) => {
diff --git a/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddTheme.vue b/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddTheme.vue
index 7301aa687c003189bd9bd84a09ea9c11418ed5d4..5ba841058aaae550250a63bd0af913b41c749719 100644
--- a/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddTheme.vue
+++ b/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddTheme.vue
@@ -69,7 +69,6 @@ export default {
     return {
       accept: "image/jpeg,image/png",
       api: process.env.VUE_APP_API_BASE_URL + "/",
-      api2: process.env.VUE_APP_API_IMG_URL,
       fileList: [],
       form: {
         siteId: local.getLocal("siteId"), // 绔欑偣id
@@ -117,8 +116,7 @@ export default {
               uid: "-2",
               name: this.form.cover,
               status: "done",
-              url: this.api2 + this.form.cover,
-              url2: this.form.cover,
+              url: this.form.cover,
             },
           ];
         }
@@ -158,17 +156,25 @@ export default {
       return isJpgOrPng && isLt10M;
     },
     // 涓婁紶灏侀潰
-    handleChangeCover({ fileList }) {
+    handleChangeCover({ file, fileList }) {
+      if (
+        file.status &&
+        file.status != "removed" &&
+        file.response &&
+        file.response.code == -1
+      ) {
+        this.$message.error(file.response.msg);
+        fileList = fileList.filter((file) => file.response.code != -1);
+      }
       this.fileList = [...fileList].slice(-1);
       this.fileList = this.fileList.map((v) => {
         if (v.response) {
-          v.url2 = v.response.url;
-          v.url = this.api2 + v.response.url;
+          v.url = v.response.url;
         }
         return v;
       });
       if (this.fileList[0]) {
-        this.form.cover = this.fileList[0].url2;
+        this.form.cover = this.fileList[0].url;
       } else {
         this.form.cover = "";
       }
diff --git a/base-manager-ui/admin/src/pages/basicset/deploy/deploy.vue b/base-manager-ui/admin/src/pages/basicset/deploy/deploy.vue
index d8c0159d481ad6786fdf2ca833dd46d479fa6176..c8e1158474b4fb1748e06f62a64801400d53931d 100644
--- a/base-manager-ui/admin/src/pages/basicset/deploy/deploy.vue
+++ b/base-manager-ui/admin/src/pages/basicset/deploy/deploy.vue
@@ -56,16 +56,13 @@
           <!-- 妯″潡鍥炬爣 -->
           <template slot="modelIcon" slot-scope="text">
             <div v-if="text.modelIcon">
-              <!-- <div class="svg-box" v-if="isSvg(text.modelIcon)">
-                <img width="30" height="30" :src="api2 + text.modelIcon" />
-              </div> -->
               <div class="svg-box">
                 <img
                   class="pointer"
                   width="30"
                   height="30"
-                  :src="api2 + text.modelIcon"
-                  @click="handlePreview({ url: api2 + text.modelIcon })"
+                  :src="text.modelIcon"
+                  @click="handlePreview({ url: text.modelIcon })"
                 />
               </div>
             </div>
@@ -301,7 +298,6 @@ export default {
     return {
       pageSizeOptions,
       api: process.env.VUE_APP_API_BASE_URL + "/",
-      api2: process.env.VUE_APP_API_IMG_URL,
       accept: "image/jpeg,image/png,image/svg+xml", // 涓婁紶绫诲瀷
       columns,
       loading: true,
@@ -404,8 +400,7 @@ export default {
             uid: -1,
             status: "done",
             name: this.formData.modelIcon,
-            url: this.api2 + this.formData.modelIcon,
-            url2: this.formData.modelIcon,
+            url: this.formData.modelIcon,
           },
         ];
       }
@@ -471,13 +466,12 @@ export default {
       this.fileList = [...fileList].slice(-1);
       this.fileList = this.fileList.map((v) => {
         if (v.response) {
-          v.url2 = v.response.url;
-          v.url = this.api2 + v.response.url;
+          v.url = v.response.url;
         }
         return v;
       });
       if (this.fileList[0]) {
-        this.formData.modelIcon = this.fileList[0].url2;
+        this.formData.modelIcon = this.fileList[0].url;
       } else {
         this.formData.modelIcon = "";
       }
diff --git a/base-manager-ui/admin/src/pages/basicset/site/components/addsite.vue b/base-manager-ui/admin/src/pages/basicset/site/components/addsite.vue
index eea5fceb2da0bed776b47967487777f8c3a77221..db1a5647d4c140d82cb07a4fb05314e577d9856d 100644
--- a/base-manager-ui/admin/src/pages/basicset/site/components/addsite.vue
+++ b/base-manager-ui/admin/src/pages/basicset/site/components/addsite.vue
@@ -347,7 +347,6 @@ export default {
     // };
     return {
       api: process.env.VUE_APP_API_BASE_URL + "/",
-      api2: process.env.VUE_APP_API_IMG_URL,
       accept: "image/jpeg,image/png", // 涓婁紶绫诲瀷
       loading: false,
       options: regionData, // 鍦板尯绾ц仈鏁版嵁
@@ -634,8 +633,7 @@ export default {
               uid: -1,
               status: "done",
               name: this.formInfo.logoPath,
-              url: this.api2 + this.formInfo.logoPath,
-              url2: this.formInfo.logoPath,
+              url: this.formInfo.logoPath,
             },
           ];
         }
@@ -680,17 +678,25 @@ export default {
       return isJpgOrPng && isLt10M;
     },
     // 涓婁紶鍥剧墖
-    handleChange({ fileList }) {
+    handleChange({ file, fileList }) {
+      if (
+        file.status &&
+        file.status != "removed" &&
+        file.response &&
+        file.response.code == -1
+      ) {
+        this.$message.error(file.response.msg);
+        fileList = fileList.filter((file) => file.response.code != -1);
+      }
       this.fileList = [...fileList].slice(-1);
       this.fileList = this.fileList.map((v) => {
         if (v.response) {
-          v.url2 = v.response.url;
-          v.url = this.api2 + v.response.url;
+          v.url = v.response.url;
         }
         return v;
       });
       if (this.fileList[0]) {
-        this.formInfo.logoPath = this.fileList[0].url2;
+        this.formInfo.logoPath = this.fileList[0].url;
       } else {
         this.formInfo.logoPath = "";
       }
diff --git a/base-manager-ui/admin/src/pages/basicset/surface/components/ShowBox.vue b/base-manager-ui/admin/src/pages/basicset/surface/components/ShowBox.vue
index 8e874724e86621aafdd98d0b08a3c7ba0882adef..c335fd193bb3ed2e9eeda786d9f14ef067f2390c 100644
--- a/base-manager-ui/admin/src/pages/basicset/surface/components/ShowBox.vue
+++ b/base-manager-ui/admin/src/pages/basicset/surface/components/ShowBox.vue
@@ -5,7 +5,9 @@
         <h2 class="show-titlw">{{ curSkin.name }}</h2>
         <p>
           鏇存柊鏃堕棿锛�<span style="margin-right: 20px">{{
-            curSkin.updateTime | dateFormat
+            curSkin.updateTime
+              ? dateFormat(curSkin.updateTime)
+              : dateFormat(curSkin.createTime)
           }}</span>
           鏀寔鍒嗚鲸鐜囷細<span
             >{{ filterItems(curSkin.imageResolution, imageResolution) }}
@@ -167,6 +169,9 @@ export default {
         },
       });
     },
+    dateFormat(val) {
+      return this.$moment(val).format("YYYY-MM-DD HH:mm:ss");
+    },
   },
 };
 </script>
diff --git a/base-manager-ui/admin/src/pages/basicset/surface/modal/AddSurface.vue b/base-manager-ui/admin/src/pages/basicset/surface/modal/AddSurface.vue
index 012dfb3c8c4cc33a9bb38a925dcd8061fca70443..1006e9592ca2258afc9d15d031b1e3b17d357672 100644
--- a/base-manager-ui/admin/src/pages/basicset/surface/modal/AddSurface.vue
+++ b/base-manager-ui/admin/src/pages/basicset/surface/modal/AddSurface.vue
@@ -399,7 +399,7 @@ export default {
         file.type === "image/png" ||
         file.type === "image/gif";
       if (!isJpgOrPng) {
-        this.$message.error("璇蜂笂浼爅peg鎴栬€卲ng鍥剧墖!");
+        this.$message.error("璇蜂笂浼爅peg,png鎴栬€単if鍥剧墖!");
       }
       const isLt5M = file.size / 1024 / 1024 < 5;
       if (!isLt5M) {
diff --git a/base-manager-ui/admin/src/pages/basicset/system/System.vue b/base-manager-ui/admin/src/pages/basicset/system/System.vue
index 91cdff9c5fc0c2bab4d8c99b2edaf74ea7b39d69..14cfc1846388d858cac4505bf1b20d3bd350bd48 100644
--- a/base-manager-ui/admin/src/pages/basicset/system/System.vue
+++ b/base-manager-ui/admin/src/pages/basicset/system/System.vue
@@ -1,6 +1,30 @@
 <template>
   <div class="system flex flexc">
     <a-tabs :activeKey="activeKey" @change="changeRouter">
+      <a-tab-pane key="/system/user">
+        <span slot="tab">
+          <a-icon type="user" />
+          鐢ㄦ埛绠$悊
+        </span>
+      </a-tab-pane>
+      <a-tab-pane key="/system/role">
+        <span slot="tab">
+          <a-icon type="idcard" />
+          瑙掕壊绠$悊
+        </span>
+      </a-tab-pane>
+      <a-tab-pane key="/system/resource">
+        <span slot="tab">
+          <a-icon type="cloud-sync" />
+          璧勬簮绠$悊
+        </span>
+      </a-tab-pane>
+      <a-tab-pane key="/system/dimension">
+        <span slot="tab">
+          <a-icon type="deployment-unit" />
+          缁村害绠$悊
+        </span>
+      </a-tab-pane>
       <a-tab-pane key="/system/parameter">
         <span slot="tab">
           <a-icon type="container" />
@@ -53,4 +77,4 @@ export default {
     border-bottom: 1px solid #f0f0f0 !important;
   }
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/base-manager-ui/admin/src/pages/basicset/system/dimension/Dimension.vue b/base-manager-ui/admin/src/pages/basicset/system/dimension/Dimension.vue
new file mode 100644
index 0000000000000000000000000000000000000000..152601dc48f4cc74e3543cdcaa2bc5a6e4ed4898
--- /dev/null
+++ b/base-manager-ui/admin/src/pages/basicset/system/dimension/Dimension.vue
@@ -0,0 +1,236 @@
+<template>
+  <div class="dimension-container">
+    <div class="control flex aic jcb mb15 pdr6">
+      <div>
+        <a-button type="primary" style="margin-right: 10px" @click="handleAdd"
+          >鏂板</a-button
+        >
+        <a-button type="danger" @click="handleDelAll">鎵归噺鍒犻櫎</a-button>
+      </div>
+      <div class="search-box">
+        <a-input-search
+          placeholder="璇疯緭鍏ョ淮搴﹀悕鎼滅储"
+          enter-button="鎼滅储"
+          v-model="searchValue"
+          allowClear
+          @search="onSearch"
+        />
+      </div>
+    </div>
+    <!-- 琛ㄦ牸 -->
+    <div class="table-content">
+      <a-table
+        :row-selection="{
+          selectedRowKeys: selectedRowKeys,
+          onChange: onSelectChange,
+        }"
+        :loading="loading"
+        bordered
+        :scroll="{ y: 590 }"
+        :columns="columns"
+        :pagination="{
+          showTotal: (total) => `鍏� ${total} 鏉,
+          current: current,
+          total: total,
+          pageSize: size,
+          showSizeChanger: true,
+          showQuickJumper: true,
+          pageSizeOptions: pageSizeOptions,
+          onChange: handleChange,
+          onShowSizeChange: showSizeChange,
+        }"
+        :data-source="tableData"
+        :rowKey="(record) => record.id"
+      >
+        <!-- 搴忓彿 -->
+        <span slot="num" slot-scope="text, record, index">{{
+          (current - 1) * size + index + 1
+        }}</span>
+
+        <!-- 鎿嶄綔 -->
+        <template slot="action" slot-scope="text">
+          <a-space size="middle">
+            <span
+              href="javascript:;"
+              class="primary pointer"
+              @click="handleEdit(text)"
+              >缂栬緫</span
+            >
+            <span
+              href="javascript:;"
+              class="delete pointer"
+              @click="handleDel(text.id)"
+              >鍒犻櫎</span
+            >
+          </a-space>
+        </template>
+      </a-table>
+    </div>
+    <!-- 鏂板 -->
+    <AddDimension
+      ref="AddDimension"
+      :addVisible.sync="addVisible"
+      :title="title"
+      :dict="dict"
+      @addSuccess="getDimensionList"
+    ></AddDimension>
+  </div>
+</template>
+
+<script>
+import { getDimensionList, delDimension } from "@/services/system";
+import { pageSizeOptions } from "@/config/pageConfig.js";
+import AddDimension from "./modal/AddDimension";
+export default {
+  components: { AddDimension },
+  data() {
+    const columns = [
+      {
+        title: "搴忓彿",
+        dataIndex: "num",
+        width: "65px",
+        scopedSlots: {
+          customRender: "num",
+        },
+      },
+      {
+        title: "鍚嶇О",
+        dataIndex: "dimensionName",
+      },
+      {
+        title: "缂栫爜",
+        dataIndex: "dimensionCode",
+      },
+      {
+        title: "绫诲瀷",
+        dataIndex: "dimensionType",
+        customRender: (text) => {
+          return this.dict.dimensionType[text];
+        },
+      },
+      {
+        title: "缁村害鍊�",
+        dataIndex: "dimensionValue",
+      },
+      {
+        title: "鍒涘缓鏃堕棿",
+        dataIndex: "createTime",
+        customRender: (text) => {
+          return this.$moment(text).format("YYYY-MM-DD HH:mm:ss");
+        },
+      },
+
+      {
+        title: "鎿嶄綔",
+        width: "120px",
+        scopedSlots: { customRender: "action" },
+      },
+    ];
+    return {
+      columns,
+      loading: false,
+      current: 1,
+      size: 10,
+      total: 0,
+      pageSizeOptions,
+      searchValue: "", // 鎼滅储
+      tableData: [],
+      selectedRowKeys: [],
+      dict: {}, // 瀛楀吀
+      addVisible: false,
+      title: "鏂板",
+    };
+  },
+  created() {
+    this.getDimensionList();
+  },
+  methods: {
+    // 鑾峰彇鍒楄〃
+    async getDimensionList() {
+      this.loading = true;
+      let res = await getDimensionList({
+        page: this.current,
+        size: this.size,
+        dimensionName: this.searchValue,
+      });
+      this.loading = false;
+      if (res.data.code == 1) {
+        let { data, total, dict } = res.data.data;
+        this.tableData = data;
+        this.total = total;
+        this.dict = dict;
+      }
+    },
+    // 鏂板
+    handleAdd() {
+      this.title = "鏂板";
+      this.$refs.AddDimension.onAdd();
+      this.addVisible = true;
+    },
+    // 鎼滅储
+    onSearch() {
+      this.current = 1;
+    },
+    // 鍒嗛〉
+    handleChange(num) {
+      this.current = num;
+    },
+    // 鏀瑰彉姣忛〉鏄剧ず鏁伴噺
+    showSizeChange(current, size) {
+      this.current = current;
+      this.size = size;
+    },
+    // 閫夋嫨
+    onSelectChange(keys) {
+      this.selectedRowKeys = keys;
+    },
+    // 鎵归噺鍒犻櫎
+    handleDelAll() {
+      if (!this.selectedRowKeys.length) {
+        this.$message.warn("璇峰厛鍕鹃€夋暟鎹�");
+        return;
+      }
+      let ids = this.selectedRowKeys.join(",");
+      this.handleDel(ids);
+    },
+    // 缂栬緫
+    handleEdit(row) {
+      this.title = "缂栬緫";
+      this.$refs.AddDimension.onEdit(row);
+      this.addVisible = true;
+    },
+    // 鍒犻櫎
+    handleDel(id) {
+      let _this = this;
+      this.$confirm({
+        title: "绯荤粺鎻愮ず",
+        content: "鍒犻櫎涓嶅彲鎭㈠锛岀‘瀹氳鍒犻櫎鍚楋紵",
+        okText: "纭畾",
+        okType: "danger",
+        cancelText: "鍙栨秷",
+        centered: true,
+        icon: "exclamation-circle",
+        maskClosable: true,
+        async onOk() {
+          let res = await delDimension({ id });
+          if (res.data.code == 1) {
+            _this.$message.success(res.data.msg);
+            _this.getDimensionList();
+          }
+          console.log(id);
+        },
+        onCancel() {
+          console.log("Cancel");
+        },
+      });
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.dimension-container {
+  width: 100%;
+  height: 100%;
+}
+</style>
diff --git a/base-manager-ui/admin/src/pages/basicset/system/dimension/modal/AddDimension.vue b/base-manager-ui/admin/src/pages/basicset/system/dimension/modal/AddDimension.vue
new file mode 100644
index 0000000000000000000000000000000000000000..9a4d2e908e57ff72246b0715d2111fdaae98f5fc
--- /dev/null
+++ b/base-manager-ui/admin/src/pages/basicset/system/dimension/modal/AddDimension.vue
@@ -0,0 +1,155 @@
+<template>
+  <div>
+    <a-modal
+      :title="title"
+      :visible="Visible"
+      @cancel="handleCancel"
+      :maskClosable="false"
+    >
+      <a-button slot="footer" @click="handleReset">閲嶇疆</a-button>
+      <a-button
+        slot="footer"
+        type="primary"
+        :loading="loading"
+        @click="handleOk"
+        >纭畾</a-button
+      >
+      <a-form-model
+        :model="form"
+        ref="form"
+        :rules="rules"
+        :label-col="{ span: 5 }"
+        :wrapper-col="{ span: 19 }"
+      >
+        <a-form-model-item label="鍚嶇О" prop="dimensionName">
+          <a-input
+            v-model="form.dimensionName"
+            placeholder="璇疯緭鍏ョ淮搴﹀悕绉�"
+          ></a-input>
+        </a-form-model-item>
+        <a-form-model-item label="缂栧彿" prop="dimensionCode">
+          <a-input
+            v-model="form.dimensionCode"
+            placeholder="璇疯緭鍏ョ淮搴︾紪鍙�"
+          ></a-input>
+        </a-form-model-item>
+        <a-form-model-item label="绫诲瀷" prop="dimensionType">
+          <a-select v-model="form.dimensionType" placeholder="璇烽€夋嫨缁村害绫诲瀷">
+            <a-select-option
+              v-for="(v, key) in dict.dimensionType"
+              :key="key"
+              :value="Number(key)"
+              >{{ v }}</a-select-option
+            >
+          </a-select>
+        </a-form-model-item>
+        <a-form-model-item label="缁村害鍊�" prop="dimensionValue">
+          <a-input
+            v-model="form.dimensionValue"
+            placeholder="璇疯緭鍏ョ淮搴﹀€�"
+          ></a-input>
+        </a-form-model-item>
+      </a-form-model>
+    </a-modal>
+  </div>
+</template>
+
+<script>
+import { saveDimension } from "@/services/system";
+export default {
+  components: {},
+  props: {
+    addVisible: {
+      required: true,
+      type: Boolean,
+      default: false,
+    },
+    title: {
+      required: true,
+      type: String,
+      default: "",
+    },
+    dict: {
+      required: true,
+      type: Object,
+      default: () => {},
+    },
+  },
+  data() {
+    return {
+      loading: false,
+      form: {
+        dimensionName: "", // 缁村害鍚嶇О
+        dimensionCode: "", // 缁村害缂栫爜
+        dimensionValue: "", // 缁村害鍊�
+        dimensionType: undefined, // 缁村害绫诲瀷
+      },
+      rules: {
+        dimensionName: [
+          { required: true, message: "璇疯緭鍏ョ淮搴﹀悕绉�", trigger: "blur" },
+        ],
+        dimensionCode: [
+          { required: true, message: "璇疯緭鍏ョ淮搴︾紪鐮�", trigger: "blur" },
+        ],
+        dimensionValue: [
+          { required: true, message: "璇疯緭鍏ョ淮搴﹀€�", trigger: "blur" },
+        ],
+        dimensionType: [
+          { required: true, message: "璇烽€夋嫨缁村害绫诲瀷", trigger: "change" },
+        ],
+      },
+    };
+  },
+  computed: {
+    Visible: {
+      get() {
+        return this.addVisible;
+      },
+      set(val) {
+        this.$emit("update:addVisible", val);
+      },
+    },
+  },
+  created() {},
+  methods: {
+    // 鏂板
+    onAdd() {
+      Object.assign(this.form, this.$options.data().form);
+      this.form.id && this.$delete(this.form, "id");
+    },
+    // 缂栬緫
+    onEdit(row) {
+      this.$nextTick(() => {
+        this.form = { ...row };
+      });
+    },
+    // 淇濆瓨
+    handleOk() {
+      this.$refs.form.validate(async (valid) => {
+        if (valid) {
+          this.loading = true;
+          let res = await saveDimension(this.form);
+          let { code, msg } = res.data;
+          this.loading = false;
+          if (code == 1) {
+            this.$message.success(msg);
+            this.$emit("addSuccess");
+            this.handleCancel();
+          }
+        }
+      });
+    },
+    // 閲嶇疆
+    handleReset() {
+      this.$refs.form.resetFields();
+    },
+    // 鍏抽棴
+    handleCancel() {
+      this.$refs.form.resetFields();
+      this.Visible = false;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>
diff --git a/base-manager-ui/admin/src/pages/basicset/system/parameter/Parameter.vue b/base-manager-ui/admin/src/pages/basicset/system/parameter/Parameter.vue
index be2df8743182c79c73656b39c4ec465b7a34bb4d..efd1d5163cebe54639dc4b37f553ff3eecb91761 100644
--- a/base-manager-ui/admin/src/pages/basicset/system/parameter/Parameter.vue
+++ b/base-manager-ui/admin/src/pages/basicset/system/parameter/Parameter.vue
@@ -8,13 +8,20 @@
         <a-button type="danger" @click="handleDelAll">鎵归噺鍒犻櫎</a-button>
       </div>
       <div class="search-box">
-        <a-input-search
-          placeholder="璇疯緭鍏ュ弬鏁板悕鎼滅储"
-          enter-button="鎼滅储"
-          v-model="searchValue"
-          allowClear
-          @search="onSearch"
-        />
+        <a-space>
+          <a-input
+            placeholder="璇疯緭鍏ュ弬鏁板悕鎼滅储"
+            v-model="searchForm.name"
+            allowClear
+          />
+          <a-input
+            placeholder="璇疯緭鍏ヤ簩绾х粍缁囨悳绱�"
+            v-model="searchForm.secondOrganize"
+            allowClear
+          />
+          <a-button type="primary" @click="onSearch">鎼滅储</a-button>
+          <a-button @click="resetSearch">閲嶇疆</a-button>
+        </a-space>
       </div>
     </div>
     <!-- 琛ㄦ牸 -->
@@ -176,6 +183,10 @@ export default {
       total: 0,
       pageSizeOptions,
       searchValue: "", // 鎼滅储
+      searchForm: {
+        name: "",
+        secondOrganize: "",
+      },
       tableData: [],
       selectedRowKeys: [],
       dict: {}, // 瀛楀吀
@@ -193,7 +204,8 @@ export default {
       let res = await getSystemParameterList({
         page: this.current,
         size: this.size,
-        name: `%${this.searchValue}%`,
+        name: `%${this.searchForm.name}%`,
+        secondOrganize: `%${this.searchForm.secondOrganize}%`,
       });
       this.loading = false;
       if (res.data.code == 1) {
@@ -217,6 +229,12 @@ export default {
       this.current = 1;
       this.getSystemParameterList();
     },
+    // 閲嶇疆鎼滅储
+    resetSearch() {
+      this.current = 1;
+      Object.assign(this.searchForm, this.$options.data().searchForm);
+      this.getSystemParameterList();
+    },
     // 鍒嗛〉
     handleChange(num) {
       this.current = num;
@@ -292,4 +310,4 @@ export default {
   width: 100%;
   height: 100%;
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/base-manager-ui/admin/src/pages/basicset/system/parameter/modal/AddParameter.vue b/base-manager-ui/admin/src/pages/basicset/system/parameter/modal/AddParameter.vue
index 2f8f4ce280faace9d796c43cecb96fb64598cbe2..61b19bb264c553784c5e82303100b1f22ecf3688 100644
--- a/base-manager-ui/admin/src/pages/basicset/system/parameter/modal/AddParameter.vue
+++ b/base-manager-ui/admin/src/pages/basicset/system/parameter/modal/AddParameter.vue
@@ -183,9 +183,11 @@ export default {
     // 鏂囦欢涓婁紶
     handleUpload({ file }) {
       if (file.status === "done") {
-        let { code, url } = file.response;
+        let { code, url, msg } = file.response;
         if (code == 1) {
           this.form.paramValue = url;
+        } else {
+          this.$message.error(msg);
         }
       }
     },
diff --git a/base-manager-ui/admin/src/pages/basicset/system/resourceManage/Resource.vue b/base-manager-ui/admin/src/pages/basicset/system/resourceManage/Resource.vue
new file mode 100644
index 0000000000000000000000000000000000000000..b7a873b1050bbe30d22a12f681ef8a880acc28a1
--- /dev/null
+++ b/base-manager-ui/admin/src/pages/basicset/system/resourceManage/Resource.vue
@@ -0,0 +1,268 @@
+<template>
+  <div class="resource-container">
+    <div class="control flex aic jcb mb15 pdr6">
+      <a-space>
+        <a-button type="primary" @click="handleAdd">鏂板</a-button>
+        <a-button
+          v-permission="[1]"
+          type="primary"
+          class="addclass"
+          @click="refSresource"
+          >鍒锋柊璧勬簮</a-button
+        >
+        <a-button type="danger" @click="handleDelAll">鎵归噺鍒犻櫎</a-button>
+      </a-space>
+      <div class="search-box">
+        <a-input-search
+          placeholder="璇疯緭鍏ヨ祫婧愬悕鎼滅储"
+          enter-button="鎼滅储"
+          v-model="searchValue"
+          allowClear
+          @search="onSearch"
+        />
+      </div>
+    </div>
+    <!-- 琛ㄦ牸 -->
+    <div class="table-content">
+      <a-table
+        :row-selection="{
+          selectedRowKeys: selectedRowKeys,
+          onChange: onSelectChange,
+        }"
+        :loading="loading"
+        bordered
+        :scroll="{ y: 590 }"
+        :columns="columns"
+        :pagination="{
+          showTotal: (total) => `鍏� ${total} 鏉,
+          current: current,
+          total: total,
+          pageSize: size,
+          showSizeChanger: true,
+          showQuickJumper: true,
+          pageSizeOptions: pageSizeOptions,
+          onChange: handleChange,
+          onShowSizeChange: showSizeChange,
+        }"
+        :data-source="tableData"
+        :rowKey="(record) => record.id"
+      >
+        <!-- 搴忓彿 -->
+        <span slot="num" slot-scope="text, record, index">{{
+          (current - 1) * size + index + 1
+        }}</span>
+
+        <!-- 鎿嶄綔 -->
+        <template slot="action" slot-scope="text">
+          <a-space size="middle">
+            <span
+              href="javascript:;"
+              class="primary pointer"
+              @click="handleEdit(text)"
+              >缂栬緫</span
+            >
+            <span
+              href="javascript:;"
+              class="delete pointer"
+              @click="handleDel(text.id)"
+              >鍒犻櫎</span
+            >
+          </a-space>
+        </template>
+      </a-table>
+    </div>
+    <!-- 鏂板銆佺紪杈� -->
+    <AddResurce
+      ref="AddResurce"
+      :title="title"
+      :visible.sync="addVisible"
+      :dict="dict"
+      @add="getResourceList"
+    ></AddResurce>
+  </div>
+</template>
+
+<script>
+import {
+  getResourceList,
+  refreshResource,
+  delResource,
+} from "@/services/system";
+import { pageSizeOptions } from "@/config/pageConfig.js";
+import AddResurce from "./modal/AddResurce.vue";
+export default {
+  components: { AddResurce },
+  data() {
+    const columns = [
+      {
+        title: "搴忓彿",
+        dataIndex: "num",
+        width: "65px",
+        scopedSlots: {
+          customRender: "num",
+        },
+      },
+      {
+        title: "鍚嶇О",
+        width: 400,
+        dataIndex: "name",
+      },
+      {
+        title: "璧勬簮",
+        dataIndex: "url",
+        customRender: (text) => {
+          if (text) {
+            return text.split(",").map((v) => {
+              return (
+                <a-tag style="margin-bottom:4px" color="blue">
+                  {v}
+                </a-tag>
+              );
+            });
+          }
+        },
+      },
+      {
+        title: "璁よ瘉绫诲瀷",
+        width: 200,
+        dataIndex: "authType",
+        customRender: (text) => {
+          return this.dict.authType[text];
+        },
+      },
+      {
+        title: "鎿嶄綔",
+        width: "120px",
+        scopedSlots: { customRender: "action" },
+      },
+    ];
+    return {
+      columns,
+      loading: false,
+      current: 1,
+      size: 10,
+      total: 0,
+      pageSizeOptions,
+      searchValue: "", // 鎼滅储
+      tableData: [],
+      selectedRowKeys: [],
+      dict: {}, // 瀛楀吀
+      addVisible: false,
+      title: "鏂板",
+    };
+  },
+  created() {
+    this.getResourceList();
+  },
+  methods: {
+    // 鑾峰彇璧勬簮鍒楄〃
+    async getResourceList() {
+      this.loading = true;
+      let res = await getResourceList({
+        page: this.current,
+        size: this.size,
+        name: `%${this.searchValue}%`,
+      });
+      this.loading = false;
+      if (res.data.code == 1) {
+        let { data, total, dict } = res.data.data;
+        this.tableData = data;
+        this.total = total;
+        this.dict = dict;
+      }
+    },
+    // 鏂板
+    handleAdd() {
+      this.title = "鏂板";
+      this.$refs.AddResurce.onAdd();
+      this.addVisible = true;
+    },
+    // 鎼滅储
+    onSearch() {
+      this.current = 1;
+      this.getResourceList();
+    },
+    // 鍒嗛〉
+    handleChange(num) {
+      this.current = num;
+      this.getResourceList();
+    },
+    // 鏀瑰彉姣忛〉鏄剧ず鏁伴噺
+    showSizeChange(current, size) {
+      this.current = current;
+      this.size = size;
+      this.getResourceList();
+    },
+    // 閫夋嫨
+    onSelectChange(keys) {
+      this.selectedRowKeys = keys;
+    },
+    // 鎵归噺鍒犻櫎
+    handleDelAll() {
+      if (!this.selectedRowKeys.length) {
+        this.$message.warn("璇峰厛鍕鹃€夋暟鎹�");
+        return;
+      }
+      let ids = this.selectedRowKeys.join(",");
+      this.handleDel(ids);
+    },
+    // 缂栬緫
+    handleEdit(row) {
+      this.title = "缂栬緫";
+      this.$refs.AddResurce.onEdit(row);
+      this.addVisible = true;
+    },
+    // 鍒犻櫎
+    handleDel(id) {
+      let _this = this;
+      this.$confirm({
+        title: "绯荤粺鎻愮ず",
+        content: "鍒犻櫎涓嶅彲鎭㈠锛岀‘瀹氳鍒犻櫎鍚楋紵",
+        okText: "纭畾",
+        okType: "danger",
+        cancelText: "鍙栨秷",
+        centered: true,
+        icon: "exclamation-circle",
+        maskClosable: true,
+        async onOk() {
+          let res = await delResource({ id });
+          if (res.data.code == 1) {
+            let { msg } = res.data;
+            _this.$message.success(msg);
+            _this.getResourceList();
+          }
+        },
+        onCancel() {
+          console.log("Cancel");
+        },
+      });
+    },
+
+    // 鍒锋柊璧勬簮
+    async refSresource() {
+      let _this = this;
+      this.$confirm({
+        title: "绯荤粺鎻愮ず",
+        content: "纭畾瑕佸埛鏂拌祫婧愬悧?",
+        okText: "鏄�",
+        cancelText: "鍚�",
+        centered: true,
+        async onOk() {
+          let res = await refreshResource();
+          if (res.data.code == 1) {
+            _this.$message.success(res.data.msg);
+            _this.getResourceList();
+          }
+        },
+      });
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.resource-container {
+  width: 100%;
+  height: 100%;
+}
+</style>
diff --git a/base-manager-ui/admin/src/pages/basicset/system/resourceManage/modal/AddResurce.vue b/base-manager-ui/admin/src/pages/basicset/system/resourceManage/modal/AddResurce.vue
new file mode 100644
index 0000000000000000000000000000000000000000..83653786dc1753a179846a69b020876e1e220510
--- /dev/null
+++ b/base-manager-ui/admin/src/pages/basicset/system/resourceManage/modal/AddResurce.vue
@@ -0,0 +1,233 @@
+<template>
+  <div class="add-resurce">
+    <a-modal
+      :title="title"
+      :centered="true"
+      :visible="Visible"
+      @cancel="handleCancel"
+      width="30%"
+      :maskClosable="false"
+    >
+      <a-form-model
+        :label-col="{
+          span: 5,
+        }"
+        :wrapper-col="{
+          span: 19,
+        }"
+        ref="form"
+        :model="form"
+        :rules="rules"
+      >
+        <a-form-model-item label="璧勬簮鍚嶇О" prop="name">
+          <a-input
+            placeholder="璇疯緭鍏ヨ祫婧愬悕绉�"
+            allowClear
+            v-model="form.name"
+          />
+        </a-form-model-item>
+        <a-form-model-item label="鏉冮檺绫诲瀷" prop="authType">
+          <a-select v-model="form.authType" placeholder="璇烽€夋嫨鏉冮檺绫诲瀷">
+            <a-select-option
+              v-for="(v, key) in dict.authType"
+              :key="key"
+              :value="Number(key)"
+              >{{ v }}</a-select-option
+            >
+          </a-select>
+        </a-form-model-item>
+        <a-form-model-item class="url-params-box" label="閾炬帴鍦板潃">
+          <a-form-model-item
+            class="url-params"
+            v-for="(v, i) in form.urls"
+            :key="i"
+            :prop="`urls.${i}.value`"
+            :rules="[
+              { required: true, validator: validatorUrl, trigger: 'blur' },
+            ]"
+          >
+            <a-input
+              class="mr10"
+              v-model="v.value"
+              placeholder="璇疯緭鍏ラ摼鎺ュ湴鍧€"
+            />
+            <a-space>
+              <a-button type="primary" @click="changeParams(i, 'add')"
+                ><a-icon type="plus"
+              /></a-button>
+              <a-button
+                type="danger"
+                v-if="i > 0"
+                @click="changeParams(i, 'remove')"
+                ><a-icon type="minus"
+              /></a-button>
+            </a-space>
+          </a-form-model-item>
+        </a-form-model-item>
+      </a-form-model>
+      <template slot="footer">
+        <a-button @click="resetForm">閲嶇疆</a-button>
+        <a-button
+          type="primary"
+          class="addclass"
+          :loading="loading"
+          @click="subForm"
+          >纭畾</a-button
+        >
+      </template>
+    </a-modal>
+  </div>
+</template>
+
+<script>
+import { saveResource } from "@/services/system";
+export default {
+  props: {
+    title: {
+      required: true,
+      type: String,
+      default: "鏂板璧勬簮",
+    },
+    visible: {
+      required: true,
+      type: Boolean,
+      default: false,
+    },
+    dict: {
+      required: true,
+      type: Object,
+      default: () => {},
+    },
+  },
+  data() {
+    return {
+      loading: false,
+      form: {
+        name: "",
+        authType: undefined,
+        url: "",
+        urls: [
+          {
+            value: "",
+          },
+        ],
+      },
+      rules: {
+        name: [{ required: true, message: "璇疯緭鍏ヨ祫婧愬悕绉�", trigger: "blur" }],
+        authType: [
+          { required: true, message: "璇疯緭閫夋嫨鏉冮檺绫诲瀷", trigger: "change" },
+        ],
+      },
+    };
+  },
+  computed: {
+    Visible: {
+      get() {
+        return this.visible;
+      },
+      set(val) {
+        this.$emit("update:visible", val);
+      },
+    },
+  },
+  methods: {
+    onAdd() {
+      Object.assign(this.form, this.$options.data().form);
+      this.form.id && this.$delete(this.form, "id");
+    },
+    onEdit(row) {
+      setTimeout(() => {
+        this.form = { ...row };
+        let arr = [];
+        if (this.form.url) {
+          arr = this.form.url.split(",").map((v) => {
+            return {
+              value: v,
+            };
+          });
+        }
+        this.$set(this.form, "urls", arr);
+      }, 10);
+    },
+    subForm() {
+      this.$refs.form.validate(async (valid) => {
+        if (valid) {
+          this.loading = true;
+          let res = await saveResource({
+            ...this.form,
+            url: this.form.urls.map((v) => v.value).join(","),
+          });
+          let { code, msg } = res.data;
+          this.loading = false;
+          if (code == 1) {
+            this.$message.success(msg);
+            this.$emit("add");
+            this.handleCancel();
+          }
+        }
+      });
+    },
+
+    // 鍒ゆ柇鏄惁瀛樺湪閾炬帴
+    isRepeat(val) {
+      return this.form.urls.filter((v) => v.value == val).length > 1;
+    },
+
+    // 鏍¢獙閾炬帴鍦板潃
+    validatorUrl(rule, value, callback) {
+      if (!value) {
+        callback(new Error("璇疯緭鍏ラ摼鎺�"));
+      } else if (this.isRepeat(value)) {
+        callback(new Error("閲嶅鐨勯摼鎺ュ湴鍧€"));
+      } else {
+        callback();
+      }
+    },
+
+    changeParams(index, type) {
+      if (type == "add") {
+        let obj = {
+          value: "",
+        };
+        if (this.form.urls.some((v) => !v.value)) {
+          this.$message.warning("璇峰厛瀹屾垚鍓嶉潰鍦板潃鐨勫~鍐�");
+          return;
+        }
+        this.form.urls.splice(index + 1, 0, obj);
+      } else {
+        this.form.urls.splice(index, 1);
+      }
+      // this.$forceUpdate();
+    },
+
+    resetForm() {
+      // 閲嶇疆杩樺師琛ㄥ崟淇℃伅鍐呭
+      this.$refs.form.resetFields();
+      this.$set(this.form, "urls", [{ value: "" }]);
+    },
+    handleCancel() {
+      this.resetForm();
+      this.Visible = false;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+/deep/.ant-modal-body {
+  max-height: 600px;
+  overflow-y: auto;
+}
+/deep/.url-params-box {
+  display: block !important;
+  .ant-form-item-children {
+    display: block;
+  }
+}
+/deep/.url-params {
+  .ant-form-item-children {
+    display: flex;
+    align-items: center;
+  }
+}
+</style>
diff --git a/base-manager-ui/admin/src/pages/basicset/system/role/Role.vue b/base-manager-ui/admin/src/pages/basicset/system/role/Role.vue
new file mode 100644
index 0000000000000000000000000000000000000000..a2569c6dfcdb797d19f7f5c6eb9736e7d94f02b0
--- /dev/null
+++ b/base-manager-ui/admin/src/pages/basicset/system/role/Role.vue
@@ -0,0 +1,232 @@
+<template>
+  <div class="role-container">
+    <div class="control flex aic jcb mb15 pdr6">
+      <div>
+        <a-button type="primary" style="margin-right: 10px" @click="handleAdd"
+          >鏂板</a-button
+        >
+        <a-button type="danger" @click="handleDelAll">鎵归噺鍒犻櫎</a-button>
+      </div>
+      <div class="search-box">
+        <a-input-search
+          placeholder="璇疯緭鍏ヨ鑹插悕鎼滅储"
+          enter-button="鎼滅储"
+          v-model="searchValue"
+          allowClear
+          @search="onSearch"
+        />
+      </div>
+    </div>
+    <!-- 琛ㄦ牸 -->
+    <div class="table-content">
+      <a-table
+        :row-selection="{
+          selectedRowKeys: selectedRowKeys,
+          onChange: onSelectChange,
+        }"
+        :loading="loading"
+        bordered
+        :scroll="{ y: 590 }"
+        :columns="columns"
+        :pagination="{
+          showTotal: (total) => `鍏� ${total} 鏉,
+          current: current,
+          total: total,
+          pageSize: size,
+          showSizeChanger: true,
+          showQuickJumper: true,
+          pageSizeOptions: pageSizeOptions,
+          onChange: handleChange,
+          onShowSizeChange: showSizeChange,
+        }"
+        :data-source="tableData"
+        :rowKey="(record) => record.id"
+      >
+        <!-- 搴忓彿 -->
+        <span slot="num" slot-scope="text, record, index">{{
+          (current - 1) * size + index + 1
+        }}</span>
+
+        <!-- 鎿嶄綔 -->
+        <template slot="action" slot-scope="text">
+          <a-space size="middle">
+            <span class="primary pointer" @click="apportion(text)"
+              >鍒嗛厤璧勬簮</span
+            >
+            <span class="primary pointer" @click="handleResDim(text)"
+              >璧勬簮瑙勫垯</span
+            >
+            <span class="primary pointer" @click="handleEdit(text)">缂栬緫</span>
+            <span class="delete pointer" @click="handleDel(text.id)">鍒犻櫎</span>
+          </a-space>
+        </template>
+      </a-table>
+    </div>
+    <!-- 鏂板 -->
+    <AddRole
+      ref="AddRole"
+      :title="title"
+      :addVisible.sync="addVisible"
+      @addSuccess="getRoleList"
+    ></AddRole>
+    <!-- 鍒嗛厤璧勬簮 -->
+    <ApportionRes ref="ApportionRes" :visible.sync="resVisible"></ApportionRes>
+    <!-- 璧勬簮瑙勫垯 -->
+    <ResDimList ref="ResDimList" :visible.sync="resDimListVisible"></ResDimList>
+  </div>
+</template>
+
+<script>
+import { getRoleList, delRole } from "@/services/system";
+import { pageSizeOptions } from "@/config/pageConfig.js";
+import AddRole from "./modal/AddRole.vue";
+import ApportionRes from "./modal/ApportionRes.vue";
+import ResDimList from "./modal/ResDimList.vue";
+export default {
+  components: { AddRole, ApportionRes, ResDimList },
+  data() {
+    const columns = [
+      {
+        title: "搴忓彿",
+        dataIndex: "num",
+        width: "65px",
+        scopedSlots: {
+          customRender: "num",
+        },
+      },
+      {
+        title: "瑙掕壊鍚嶇О",
+        dataIndex: "name",
+      },
+      {
+        title: "澶囨敞",
+        dataIndex: "remark",
+      },
+
+      {
+        title: "鎿嶄綔",
+        width: "20% ",
+        scopedSlots: { customRender: "action" },
+      },
+    ];
+    return {
+      columns,
+      loading: false,
+      current: 1,
+      size: 10,
+      total: 0,
+      pageSizeOptions,
+      searchValue: "", // 鎼滅储
+      tableData: [],
+      selectedRowKeys: [],
+      dict: {}, // 瀛楀吀
+      addVisible: false,
+      resVisible: false,
+      resDimListVisible: false,
+      title: "鏂板瑙掕壊",
+    };
+  },
+  created() {
+    this.getRoleList();
+  },
+  methods: {
+    // 鑾峰彇瑙掕壊鍒楄〃
+    async getRoleList() {
+      this.loading = true;
+      let res = await getRoleList({
+        current: this.current,
+        size: this.size,
+        name: this.searchValue,
+      });
+      this.loading = false;
+      if (res.data.code == 1) {
+        let { data, total } = res.data.data;
+        this.tableData = data;
+        this.total = total;
+      }
+    },
+    // 鏂板
+    handleAdd() {
+      this.title = "鏂板瑙掕壊";
+      this.$refs.AddRole.onAdd();
+      this.addVisible = true;
+    },
+    // 鎼滅储
+    onSearch() {
+      this.current = 1;
+      this.getRoleList();
+    },
+    // 鍒嗛〉
+    handleChange(num) {
+      this.current = num;
+      this.getRoleList();
+    },
+    // 鏀瑰彉姣忛〉鏄剧ず鏁伴噺
+    showSizeChange(current, size) {
+      this.current = current;
+      this.size = size;
+      this.getRoleList();
+    },
+    // 閫夋嫨
+    onSelectChange(keys) {
+      this.selectedRowKeys = keys;
+    },
+    // 鎵归噺鍒犻櫎
+    handleDelAll() {
+      if (!this.selectedRowKeys.length) {
+        this.$message.warn("璇峰厛鍕鹃€夋暟鎹�");
+        return;
+      }
+      let ids = this.selectedRowKeys.join(",");
+      this.handleDel(ids);
+    },
+    // 缂栬緫
+    handleEdit(row) {
+      this.title = "缂栬緫瑙掕壊";
+      this.$refs.AddRole.onEdit(row);
+      this.addVisible = true;
+    },
+    // 鍒犻櫎
+    handleDel(id) {
+      let _this = this;
+      this.$confirm({
+        title: "绯荤粺鎻愮ず",
+        content: "鍒犻櫎涓嶅彲鎭㈠锛岀‘瀹氳鍒犻櫎鍚楋紵",
+        okText: "纭畾",
+        okType: "danger",
+        cancelText: "鍙栨秷",
+        centered: true,
+        icon: "exclamation-circle",
+        maskClosable: true,
+        async onOk() {
+          let res = await delRole({ id });
+          if (res.data.code == 1) {
+            _this.$message.success(res.data.msg);
+            _this.getRoleList();
+          }
+        },
+        onCancel() {
+          console.log("Cancel");
+        },
+      });
+    },
+    // 鍒嗛厤璧勬簮
+    apportion(row) {
+      this.$refs.ApportionRes.onAdd(row.id);
+      this.resVisible = true;
+    },
+    // 璧勬簮缁村害
+    handleResDim(row) {
+      this.$refs.ResDimList.getRoleInfo(row);
+      this.resDimListVisible = true;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.role-container {
+  width: 100%;
+  height: 100%;
+}
+</style>
diff --git a/base-manager-ui/admin/src/pages/basicset/system/role/modal/AddResDim.vue b/base-manager-ui/admin/src/pages/basicset/system/role/modal/AddResDim.vue
new file mode 100644
index 0000000000000000000000000000000000000000..7d96c1e93bea8c462b5e16afcc9ad94ffe03bc02
--- /dev/null
+++ b/base-manager-ui/admin/src/pages/basicset/system/role/modal/AddResDim.vue
@@ -0,0 +1,273 @@
+<template>
+  <div>
+    <a-modal
+      :title="title"
+      :visible="Visible"
+      @cancel="handleCancel"
+      :maskClosable="false"
+      :zIndex="1001"
+    >
+      <a-form-model
+        :model="form"
+        ref="form"
+        :rules="rules"
+        :label-col="{ span: 5 }"
+        :wrapper-col="{ span: 19 }"
+      >
+        <a-form-model-item label="鎵€灞炶祫婧�" prop="resourceId">
+          <a-cascader
+            :options="resourceList"
+            v-model="resource"
+            placeholder="璇烽€夋嫨璧勬簮"
+            @change="changeRes"
+          />
+        </a-form-model-item>
+        <a-form-model-item label="鎵€灞炵淮搴�" prop="ruleCode">
+          <a-select
+            allowClear
+            v-model="form.ruleCode"
+            @change="changeDim"
+            placeholder="璇烽€夋嫨鎵€灞炵淮搴�"
+          >
+            <a-select-option
+              v-for="v in dimensionList"
+              :key="v.id"
+              :value="v.dimensionCode"
+              :dataset-row="v"
+            >
+              {{ v.dimensionName }}
+            </a-select-option>
+          </a-select>
+        </a-form-model-item>
+        <a-form-model-item label="瑙勫垯鏉′欢" prop="ruleCondition">
+          <a-select
+            allowClear
+            v-model="form.ruleCondition"
+            placeholder="璇烽€夋嫨瑙勫垯鏉′欢"
+          >
+            <a-select-option
+              v-for="(v, key) in dict.ruleCondition"
+              :key="key"
+              :value="key"
+            >
+              {{ v }}
+            </a-select-option>
+          </a-select>
+        </a-form-model-item>
+      </a-form-model>
+      <a-button slot="footer" @click="handleReset">閲嶇疆</a-button>
+      <a-button
+        slot="footer"
+        type="primary"
+        :loading="loading"
+        @click="handleOk"
+        >纭畾</a-button
+      >
+    </a-modal>
+  </div>
+</template>
+
+<script>
+import {
+  getDimensionList,
+  getResourceList,
+  saveDimRes,
+} from "@/services/system";
+
+export default {
+  components: {},
+  props: {
+    addVisible: {
+      required: true,
+      type: Boolean,
+      default: false,
+    },
+    title: {
+      required: true,
+      type: String,
+      default: "",
+    },
+    dict: {
+      required: true,
+      type: Object,
+      default: () => {},
+    },
+  },
+  data() {
+    return {
+      loading: false,
+      resource: [],
+      dimensionList: [], // 缁村害鍒楄〃
+      resourceList: [], // 璧勬簮鍒楄〃
+      form: {
+        roleId: "", // 瑙掕壊id
+        resourceId: "", // 璧勬簮id
+        ruleCode: undefined, // 缁村害缂栫爜
+        ruleName: "", // 缁村害鍚嶇О
+        ruleCondition: undefined, // 瑙勫垯鏉′欢
+        ruleValue: "", // 缁村害鍊�
+        ruleType: "", // 缁村害绫诲瀷
+        roleName: "", // 瑙掕壊鍚嶇О
+        resourceName: "", // 璧勬簮鍚嶇О
+      },
+      rules: {
+        resourceId: [
+          { required: true, message: "璇烽€夋嫨璧勬簮", trigger: "change" },
+        ],
+        ruleCode: [
+          { required: true, message: "璇烽€夋嫨缁村害", trigger: "change" },
+        ],
+        ruleCondition: [
+          { required: true, message: "璇烽€夋嫨瑙勫垯鏉′欢", trigger: "change" },
+        ],
+      },
+    };
+  },
+  computed: {
+    Visible: {
+      get() {
+        return this.addVisible;
+      },
+      set(val) {
+        this.$emit("update:addVisible", val);
+      },
+    },
+  },
+  created() {
+    this.getDimensionList();
+    this.getResourceList();
+  },
+  methods: {
+    // 鑾峰彇缁村害鍒楄〃
+    async getDimensionList() {
+      let res = await getDimensionList({
+        page: 1,
+        size: -1,
+      });
+      if (res.data.code == 1) {
+        let { data } = res.data.data;
+        this.dimensionList = data;
+      }
+    },
+
+    // 鑾峰彇璧勬簮鍒楄〃
+    async getResourceList() {
+      let res = await getResourceList({
+        page: 1,
+        size: -1,
+      });
+      if (res.data.code == 1) {
+        let { data } = res.data.data;
+        this.resourceList = this.groupByAuth(data);
+      }
+    },
+
+    // 璧勬簮鍒嗙粍
+    groupByAuth(list) {
+      let group = {};
+      let groupList = [];
+      list.forEach((item) => {
+        let name = item.name.split("-")[0];
+        if (!group[name]) {
+          group[name] = {
+            indeterminate: false,
+            checkAll: false,
+            list: [],
+          };
+        }
+        group[name].list.push(item);
+      });
+      groupList = Object.keys(group).map((key) => {
+        return {
+          label: key,
+          value: key,
+          children: group[key].list.map((v) => {
+            return {
+              label: v.name,
+              value: v.id,
+            };
+          }),
+        };
+      });
+      return groupList;
+    },
+
+    // 閫夋嫨璧勬簮
+    changeRes(val, selectedOptions) {
+      if (selectedOptions.length) {
+        this.form.resourceId = selectedOptions[1].value;
+        this.form.resourceName = selectedOptions[1].label;
+      } else {
+        this.form.resourceId = "";
+        this.form.resourceName = "";
+      }
+    },
+
+    // 閫夋嫨缁村害
+    changeDim(val, e) {
+      if (val && e) {
+        let { dimensionName, dimensionType, dimensionValue } = e.data.attrs[
+          "dataset-row"
+        ];
+
+        this.form.ruleName = dimensionName;
+        this.form.ruleType = dimensionType;
+        this.form.ruleValue = dimensionValue;
+      } else {
+        this.form.ruleName = "";
+        this.form.ruleType = "";
+        this.form.ruleValue = "";
+      }
+    },
+
+    // 鏂板
+    onAdd(roleInfo) {
+      Object.assign(this.form, this.$options.data().form);
+      this.form.id && this.$delete(this.form, "id");
+      this.form.roleId = roleInfo.id;
+      this.form.roleName = roleInfo.name;
+    },
+    // 缂栬緫
+    onEdit(row) {
+      this.$nextTick(() => {
+        this.form = { ...row };
+        let resName = this.form.resourceName.split("-")[0];
+        this.resource = [resName, this.form.resourceId];
+      });
+    },
+    // 淇濆瓨
+    handleOk() {
+      this.$refs.form.validate(async (valid) => {
+        if (valid) {
+          this.loading = true;
+          let res = await saveDimRes(this.form);
+          let { code, msg } = res.data;
+          this.loading = false;
+          if (code == 1) {
+            this.$message.success(msg);
+            this.$emit("addSuccess");
+            this.handleCancel();
+          }
+        }
+      });
+    },
+    // 閲嶇疆
+    handleReset() {
+      this.$refs.form.resetFields();
+      this.form.ruleName = "";
+      this.form.ruleType = "";
+      this.form.ruleValue = "";
+      this.form.resourceId = "";
+      this.form.resourceName = "";
+      this.resource = [];
+    },
+    // 鍏抽棴
+    handleCancel() {
+      this.handleReset();
+      this.Visible = false;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>
diff --git a/base-manager-ui/admin/src/pages/basicset/system/role/modal/AddRole.vue b/base-manager-ui/admin/src/pages/basicset/system/role/modal/AddRole.vue
new file mode 100644
index 0000000000000000000000000000000000000000..eb670af1e7a6062ec6ab7a8585b930b9867e3484
--- /dev/null
+++ b/base-manager-ui/admin/src/pages/basicset/system/role/modal/AddRole.vue
@@ -0,0 +1,120 @@
+<template>
+  <div>
+    <a-modal
+      :title="title"
+      :visible="Visible"
+      @cancel="handleCancel"
+      :maskClosable="false"
+    >
+      <a-button slot="footer" @click="handleReset">閲嶇疆</a-button>
+      <a-button
+        slot="footer"
+        type="primary"
+        :loading="loading"
+        @click="handleOk"
+        >纭畾</a-button
+      >
+      <a-form-model
+        :model="form"
+        ref="form"
+        :rules="rules"
+        :label-col="{ span: 5 }"
+        :wrapper-col="{ span: 19 }"
+      >
+        <a-form-model-item label="鍚嶇О" prop="name">
+          <a-input v-model="form.name" placeholder="璇疯緭鍏ヨ鑹插悕绉�"></a-input>
+        </a-form-model-item>
+        <a-form-model-item label="澶囨敞" prop="remark">
+          <a-textarea
+            v-model="form.remark"
+            placeholder="璇疯緭鍏ュ娉�"
+          ></a-textarea>
+        </a-form-model-item>
+      </a-form-model>
+    </a-modal>
+  </div>
+</template>
+
+<script>
+import { saveRole } from "@/services/system";
+
+export default {
+  components: {},
+  props: {
+    addVisible: {
+      required: true,
+      type: Boolean,
+      default: false,
+    },
+    title: {
+      required: true,
+      type: String,
+      default: "",
+    },
+  },
+  data() {
+    return {
+      loading: false,
+      form: {
+        name: "",
+        remark: "",
+        roleType: 2,
+      },
+      rules: {
+        name: [{ required: true, message: "璇疯緭鍏ヨ鑹插悕绉�", trigger: "blur" }],
+      },
+    };
+  },
+  computed: {
+    Visible: {
+      get() {
+        return this.addVisible;
+      },
+      set(val) {
+        this.$emit("update:addVisible", val);
+      },
+    },
+  },
+  created() {},
+  methods: {
+    // 鏂板
+    onAdd() {
+      Object.assign(this.form, this.$options.data().form);
+      this.form.id && this.$delete(this.form, "id");
+    },
+    // 缂栬緫
+    onEdit(row) {
+      this.$nextTick(() => {
+        this.form = { ...row };
+      });
+    },
+    // 淇濆瓨
+    handleOk() {
+      this.$refs.form.validate(async (valid) => {
+        if (valid) {
+          this.loading = true;
+          let res = await saveRole(this.form);
+          let { code, msg } = res.data;
+          this.loading = false;
+          if (code == 1) {
+            this.$message.success(msg);
+            this.$emit("addSuccess");
+            this.handleCancel();
+          }
+        }
+      });
+    },
+    // 閲嶇疆
+    handleReset() {
+      this.$refs.form.resetFields();
+    },
+    // 鍏抽棴
+    handleCancel() {
+      this.$refs.form.resetFields();
+      this.Visible = false;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>
diff --git a/base-manager-ui/admin/src/pages/basicset/system/role/modal/ApportionRes.vue b/base-manager-ui/admin/src/pages/basicset/system/role/modal/ApportionRes.vue
new file mode 100644
index 0000000000000000000000000000000000000000..b73497dd43013c03d5b98ac09c4361ac94878432
--- /dev/null
+++ b/base-manager-ui/admin/src/pages/basicset/system/role/modal/ApportionRes.vue
@@ -0,0 +1,197 @@
+<template>
+  <div class="apportion-res">
+    <a-modal
+      title="鍒嗛厤璧勬簮"
+      :centered="true"
+      :visible="Visible"
+      @cancel="handleCancel"
+      width="40%"
+      :maskClosable="false"
+    >
+      <div class="mb10" v-for="(v, key) in resourceList" :key="key">
+        <div class="mb10" :style="{ borderBottom: '1px solid #E9E9E9' }">
+          <span class="title">{{ key }}</span>
+          <a-checkbox
+            :indeterminate="v.indeterminate"
+            :checked="v.checkAll"
+            @change="onCheckAllChange($event, v)"
+          >
+            鍏ㄩ€�
+          </a-checkbox>
+        </div>
+        <a-checkbox-group
+          style="width:100%"
+          :value="form.resourceIdList"
+          @change="onChange($event, v)"
+        >
+          <a-row>
+            <a-col :span="12" v-for="item in v.list" :key="item.id">
+              <a-checkbox :value="item.id">
+                {{ item.name }}
+              </a-checkbox>
+            </a-col>
+          </a-row>
+        </a-checkbox-group>
+      </div>
+
+      <template slot="footer">
+        <a-button @click="resetForm">閲嶇疆</a-button>
+        <a-button type="primary" class="addclass" @click="subForm"
+          >纭畾</a-button
+        >
+      </template>
+    </a-modal>
+  </div>
+</template>
+
+<script>
+import {
+  getRoleResourceList,
+  getResourceList,
+  saveRoleResource,
+} from "@/services/system";
+export default {
+  props: {
+    visible: {
+      required: true,
+      type: Boolean,
+      default: false,
+    },
+  },
+  data() {
+    return {
+      form: {
+        resourceIdList: [],
+        roleId: "",
+      },
+      rules: {},
+      resourceList: {}, // 璧勬簮鍒楄〃
+      userResourceList: [], // 鐢ㄦ埛璧勬簮鍒楄〃
+    };
+  },
+  computed: {
+    Visible: {
+      get() {
+        return this.visible;
+      },
+      set(val) {
+        this.$emit("update:visible", val);
+      },
+    },
+  },
+  methods: {
+    // 鑾峰彇璧勬簮鍒楄〃
+    async getResourceList() {
+      let res = await getResourceList({
+        page: 1,
+        size: -1,
+      });
+      if (res.data.code == 1) {
+        let { data } = res.data.data;
+        this.resourceList = this.groupByAuth(data);
+      }
+    },
+    // 鑾峰彇瑙掕壊璧勬簮鏉冮檺鍒楄〃
+    async getRoleResourceList(roleId) {
+      let res = await getRoleResourceList({
+        size: -1,
+        page: 1,
+        roleId,
+      });
+      if (res.data.code == 1) {
+        let { data } = res.data.data;
+        let arr = data.filter((v) => v.resourceId);
+        this.form.resourceIdList = arr.map((v) => v.resourceId);
+      }
+    },
+
+    // 鏉冮檺鍒嗙粍
+    groupByAuth(list) {
+      let group = {};
+      list.forEach((item) => {
+        let name = item.name.split("-")[0];
+        if (!group[name]) {
+          group[name] = {
+            indeterminate: false,
+            checkAll: false,
+            list: [],
+          };
+        }
+        group[name].list.push(item);
+      });
+      return group;
+    },
+    // 鎺у埗鍏ㄩ€�
+    onCheckAllChange(e, row) {
+      let rowIds = row.list.map((v) => v.id);
+      let checked = e.target.checked;
+      row.indeterminate = false;
+      row.checkAll = checked;
+      if (checked) {
+        this.form.resourceIdList = [
+          ...new Set([...this.form.resourceIdList, ...rowIds]),
+        ];
+      } else {
+        this.form.resourceIdList = this.form.resourceIdList.filter((v) => {
+          return !rowIds.includes(v);
+        });
+      }
+    },
+
+    // 鎺у埗鍗曢€�
+    onChange(checkedList, row) {
+      let rowIds = row.list.map((v) => v.id);
+      this.form.resourceIdList = this.form.resourceIdList.filter((v) => {
+        return !rowIds.includes(v);
+      });
+      this.form.resourceIdList = [
+        ...new Set([...this.form.resourceIdList, ...checkedList]),
+      ];
+      row.indeterminate =
+        !!checkedList.length && checkedList.length < rowIds.length;
+      row.checkAll = checkedList.length === rowIds.length;
+    },
+
+    onAdd(roleId) {
+      Object.assign(this.form, this.$options.data().form);
+      this.form.roleId = roleId;
+      this.getResourceList();
+      this.getRoleResourceList(roleId);
+    },
+
+    async subForm() {
+      let res = await saveRoleResource(this.form);
+      if (res.data.code == 1) {
+        this.$message.success("娣诲姞鎴愬姛");
+        this.handleCancel();
+      }
+    },
+
+    resetForm() {
+      this.form.resourceIdList = [];
+      Object.keys(this.resourceList).forEach((key) => {
+        this.resourceList[key].checkAll = false;
+        this.resourceList[key].indeterminate = false;
+      });
+      // 閲嶇疆杩樺師琛ㄥ崟淇℃伅鍐呭
+      //   this.$refs.form.resetFields();
+    },
+    handleCancel() {
+      this.resetForm();
+      this.Visible = false;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+/deep/.ant-modal-body {
+  max-height: 700px;
+  overflow-y: auto;
+}
+.title {
+  margin-right: 1em;
+  font-size: 18px;
+  font-weight: bold;
+}
+</style>
diff --git a/base-manager-ui/admin/src/pages/basicset/system/role/modal/ResDimList.vue b/base-manager-ui/admin/src/pages/basicset/system/role/modal/ResDimList.vue
new file mode 100644
index 0000000000000000000000000000000000000000..c6db4cb8d96b648fa9e91e491b1dd4d89f5b2229
--- /dev/null
+++ b/base-manager-ui/admin/src/pages/basicset/system/role/modal/ResDimList.vue
@@ -0,0 +1,270 @@
+<template>
+  <div>
+    <a-drawer
+      title="璧勬簮瑙勫垯"
+      :visible="Visible"
+      @close="onClose"
+      :maskClosable="false"
+      :destroyOnClose="true"
+      width="50%"
+    >
+      <div class="mb10">
+        瑙掕壊鍚嶇О锛�<span class="primary">{{ roleInfo.name }}</span>
+      </div>
+      <div class="search-box flex aic jcb mb20">
+        <div>
+          <a-space>
+            <a-button type="primary" @click="handleAdd"> 鏂板 </a-button>
+            <a-button type="danger" @click="handleDelAll"> 鎵归噺鍒犻櫎 </a-button>
+          </a-space>
+        </div>
+        <a-input-search
+          style="width: 300px"
+          placeholder="璇疯緭鍏ョ淮搴﹀悕绉版悳绱�"
+          enter-button="鎼滅储"
+          v-model="searchVal"
+          allowClear
+          @search="onSearch"
+        />
+      </div>
+      <!-- 琛ㄦ牸 -->
+      <div class="table-content">
+        <a-table
+          :row-selection="{
+            selectedRowKeys: selectedRowKeys,
+            onChange: onSelectChange,
+          }"
+          size="small"
+          :loading="loading"
+          bordered
+          :scroll="{ y: 460 }"
+          :columns="columns"
+          :pagination="{
+            showTotal: (total) => `鍏� ${total} 鏉,
+            current: current,
+            total: total,
+            pageSize: size,
+            showSizeChanger: true,
+            showQuickJumper: true,
+            pageSizeOptions: pageSizeOptions,
+            onChange: handleChange,
+            onShowSizeChange: showSizeChange,
+          }"
+          :data-source="tableData"
+          :rowKey="(record) => record.id"
+        >
+          <!-- 搴忓彿 -->
+          <span slot="num" slot-scope="text, record, index">{{
+            (current - 1) * size + index + 1
+          }}</span>
+
+          <!-- 鎿嶄綔 -->
+          <template slot="action" slot-scope="text">
+            <a-space>
+              <a href="javascript:;" class="edit" @click="handleEdit(text)"
+                >缂栬緫</a
+              >
+              <a href="javascript:;" class="delete" @click="handleDel(text.id)"
+                >鍒犻櫎</a
+              >
+            </a-space>
+          </template>
+        </a-table>
+      </div>
+      <AddResDim
+        ref="AddResDim"
+        :addVisible.sync="addVisible"
+        :title="title"
+        :dict="dict"
+        @addSuccess="getDimResList"
+      ></AddResDim>
+    </a-drawer>
+  </div>
+</template>
+
+<script>
+import { pageSizeOptions } from "@/config/pageConfig.js";
+import { getDimResList, delDimRes } from "@/services/system";
+import AddResDim from "./AddResDim.vue";
+
+export default {
+  props: {
+    visible: {
+      type: Boolean,
+      require: true,
+      default: false,
+    },
+  },
+  components: { AddResDim },
+  data() {
+    const columns = [
+      {
+        title: "搴忓彿",
+        dataIndex: "num",
+        width: "65px",
+        scopedSlots: {
+          customRender: "num",
+        },
+      },
+      {
+        title: "缁村害鍚嶇О",
+        dataIndex: "ruleName",
+      },
+      {
+        title: "缁村害缂栫爜",
+        dataIndex: "ruleCode",
+      },
+      {
+        title: "缁村害绫诲瀷",
+        dataIndex: "ruleType",
+      },
+      {
+        title: "缁村害鍊�",
+        dataIndex: "ruleValue",
+      },
+      {
+        title: "鎵€灞炶祫婧�",
+        dataIndex: "resourceName",
+      },
+      {
+        title: "瑙勫垯鏉′欢",
+        dataIndex: "ruleCondition",
+        customRender: (text) => {
+          return this.dict.ruleCondition[text];
+        },
+      },
+      {
+        title: "鍒涘缓鏃堕棿",
+        dataIndex: "createTime",
+        customRender: (text) => {
+          return this.$moment(text).format("YYYY-MM-DD HH:mm:ss");
+        },
+      },
+      {
+        title: "鎿嶄綔",
+        width: "100px",
+        scopedSlots: { customRender: "action" },
+      },
+    ];
+    return {
+      columns,
+      roleInfo: {}, // 妯″潡淇℃伅
+      loading: false,
+      total: 0,
+      size: 10,
+      current: 1,
+      pageSizeOptions,
+      selectedRowKeys: [],
+      tableData: [],
+      addVisible: false,
+      title: "鏂板",
+      searchVal: "",
+      dict: {}, // 瀛楀吀
+    };
+  },
+  computed: {
+    Visible: {
+      get() {
+        return this.visible;
+      },
+      set(val) {
+        this.$emit("update:visible", val);
+      },
+    },
+  },
+  methods: {
+    // 鑾峰彇妯″潡淇℃伅
+    getRoleInfo(roleInfo) {
+      this.roleInfo = roleInfo;
+      this.getDimResList();
+    },
+
+    // 鑾峰彇鍒楄〃
+    async getDimResList() {
+      this.loading = true;
+      let res = await getDimResList({
+        current: this.current,
+        size: this.size,
+        roleId: this.roleInfo.id,
+        ruleName: `%${this.searchVal}%`,
+      });
+      this.loading = false;
+      if (res.data.code == 1) {
+        let { data, total, dict } = res.data.data;
+        this.total = total;
+        this.tableData = data;
+        this.dict = dict;
+      }
+    },
+
+    handleAdd() {
+      this.title = "鏂板";
+      this.addVisible = true;
+      this.$refs.AddResDim.onAdd(this.roleInfo);
+    },
+    handleDelAll() {
+      if (!this.selectedRowKeys.length) {
+        this.$message.warning("璇峰厛鍕鹃€夋暟鎹�");
+        return;
+      }
+      let ids = this.selectedRowKeys.join(",");
+      this.handleDel(ids);
+    },
+    // 鍏抽棴鎶藉眽
+    onClose() {
+      this.searchVal = "";
+      this.selectedRowKeys = [];
+      this.Visible = false;
+    },
+    // 鎼滅储
+    onSearch() {
+      this.current = 1;
+      this.getDimResList();
+    },
+    // 缂栬緫
+    handleEdit(row) {
+      this.title = "缂栬緫";
+      this.addVisible = true;
+      this.$refs.AddResDim.onEdit(row);
+    },
+    // 缈婚〉
+    handleChange(cur) {
+      this.current = cur;
+      this.getDimResList();
+    },
+    // 鏀瑰彉姣忛〉鏄剧ず鏁伴噺
+    showSizeChange(current, size) {
+      this.current = current;
+      this.size = size;
+      this.getDimResList();
+    },
+    // 鍒犻櫎
+    handleDel(id) {
+      let _this = this;
+      this.$confirm({
+        title: "绯荤粺鎻愮ず",
+        content: "鍒犻櫎涓嶅彲鎭㈠锛岀‘瀹氳鍒犻櫎鍚楋紵",
+        okText: "纭畾",
+        okType: "danger",
+        cancelText: "鍙栨秷",
+        centered: true,
+        icon: "exclamation-circle",
+        maskClosable: true,
+        async onOk() {
+          let res = await delDimRes({ id });
+          if (res.data.code == 1) {
+            _this.$message.success(res.data.msg);
+            _this.getDimResList();
+          }
+        },
+      });
+    },
+    // 閫変腑
+    onSelectChange(keys) {
+      this.selectedRowKeys = keys;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>
diff --git a/base-manager-ui/admin/src/pages/basicset/system/user/User.vue b/base-manager-ui/admin/src/pages/basicset/system/user/User.vue
new file mode 100644
index 0000000000000000000000000000000000000000..602883c6036594598bd023e56c7b1ad0ed880823
--- /dev/null
+++ b/base-manager-ui/admin/src/pages/basicset/system/user/User.vue
@@ -0,0 +1,214 @@
+<template>
+  <div class="user-container">
+    <div class="control flex aic jcb mb15 pdr6">
+      <div>
+        <!-- <a-button type="primary" style="margin-right: 10px" @click="handleAdd"
+          >鏂板</a-button
+        >
+        <a-button type="danger" @click="handleDelAll">鎵归噺鍒犻櫎</a-button> -->
+      </div>
+      <div class="search-box">
+        <a-space>
+          <a-input
+            placeholder="璇疯緭鍏ョ櫥褰曞悕鎼滅储"
+            v-model="searchForm.loginName"
+            allowClear
+          />
+          <a-input
+            placeholder="璇疯緭鍏ョ敤鎴峰鍚嶆悳绱�"
+            v-model="searchForm.realName"
+            allowClear
+          />
+          <a-button type="primary" @click="onSearch">鎼滅储</a-button>
+          <a-button @click="resetSearch">閲嶇疆</a-button>
+        </a-space>
+      </div>
+    </div>
+    <!-- 琛ㄦ牸 -->
+    <div class="table-content">
+      <a-table
+        :loading="loading"
+        bordered
+        :scroll="{ y: 590 }"
+        :columns="columns"
+        :pagination="{
+          showTotal: (total) => `鍏� ${total} 鏉,
+          current: current,
+          total: total,
+          pageSize: size,
+          showSizeChanger: true,
+          showQuickJumper: true,
+          pageSizeOptions: pageSizeOptions,
+          onChange: handleChange,
+          onShowSizeChange: showSizeChange,
+        }"
+        :data-source="tableData"
+        :rowKey="(record) => record.id"
+      >
+        <!-- 搴忓彿 -->
+        <span slot="num" slot-scope="text, record, index">{{
+          (current - 1) * size + index + 1
+        }}</span>
+
+        <!-- 鎿嶄綔 -->
+        <template slot="action" slot-scope="text">
+          <a-space size="middle">
+            <span class="primary pointer" @click="changeRole(text)"
+              >鍒嗛厤瑙掕壊</span
+            >
+          </a-space>
+        </template>
+      </a-table>
+    </div>
+    <!-- 鍒嗛厤瑙掕壊 -->
+    <AddUserRole
+      ref="AddUserRole"
+      :addVisible.sync="addVisible"
+      @addSuccess="getUserList"
+    ></AddUserRole>
+  </div>
+</template>
+
+<script>
+import { getUserList } from "@/services/system";
+import { pageSizeOptions } from "@/config/pageConfig.js";
+import AddUserRole from "./modal/AddUserRole.vue";
+import { mapState } from "vuex";
+export default {
+  components: { AddUserRole },
+  data() {
+    const columns = [
+      {
+        title: "搴忓彿",
+        dataIndex: "num",
+        width: "65px",
+        scopedSlots: {
+          customRender: "num",
+        },
+      },
+      {
+        title: "鐧诲綍鍚�",
+        dataIndex: "loginName",
+      },
+      {
+        title: "鐢ㄦ埛濮撳悕",
+        dataIndex: "realName",
+      },
+      {
+        title: "鎵€灞炶鑹�",
+        dataIndex: "roleIds",
+        customRender: (text) => {
+          if (text && this.dict.roleIds) {
+            return <a-tag>{this.dict.roleIds[text]}</a-tag>;
+          }
+        },
+      },
+
+      {
+        title: "鐘舵€�",
+        dataIndex: "status",
+        customRender: (text) => {
+          return <a-tag>{this.dict.status[text]}</a-tag>;
+        },
+      },
+
+      {
+        title: "鎿嶄綔",
+        width: "120px",
+        scopedSlots: { customRender: "action" },
+      },
+    ];
+    return {
+      columns,
+      loading: false,
+      current: 1,
+      size: 10,
+      total: 0,
+      pageSizeOptions,
+      searchForm: {
+        loginName: "",
+        realName: "",
+      },
+      tableData: [],
+      selectedRowKeys: [],
+      dict: {}, // 瀛楀吀
+      addVisible: false,
+      title: "鏂板",
+      loginNames: ["admin", "administrator1", "Administrator"],
+    };
+  },
+  computed: {
+    ...mapState("site", ["userInfo"]),
+  },
+  created() {
+    this.getUserList();
+  },
+  methods: {
+    // 鑾峰彇鐢ㄦ埛鍒楄〃
+    async getUserList() {
+      this.loading = true;
+      let res = await getUserList({
+        page: this.current,
+        size: this.size,
+        ...this.searchForm,
+      });
+      this.loading = false;
+      if (res.data.code == 1) {
+        let { data, total, dict } = res.data.data;
+        let { name } = this.userInfo;
+        if (this.loginNames.includes(name)) {
+          this.tableData = data;
+          this.total = total;
+        } else {
+          this.tableData = data.filter((v) => {
+            return !this.loginNames.includes(v.loginName);
+          });
+
+          this.total = total - this.loginNames.length;
+        }
+
+        this.dict = dict;
+      }
+    },
+    // 鏂板
+    handleAdd() {
+      this.title = "鏂板";
+      this.$refs.AddParameter.onAdd();
+      this.addVisible = true;
+    },
+    // 鎼滅储
+    onSearch() {
+      this.current = 1;
+      this.getUserList();
+    },
+    resetSearch() {
+      this.current = 1;
+      Object.assign(this.searchForm, this.$options.data().searchForm);
+      this.getUserList();
+    },
+    // 鍒嗛〉
+    handleChange(num) {
+      this.current = num;
+      this.getUserList();
+    },
+    // 鏀瑰彉姣忛〉鏄剧ず鏁伴噺
+    showSizeChange(current, size) {
+      this.current = current;
+      this.size = size;
+      this.getUserList();
+    },
+    // 鍒嗛厤瑙掕壊
+    changeRole(row) {
+      this.$refs.AddUserRole.onEdit(row);
+      this.addVisible = true;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.user-container {
+  width: 100%;
+  height: 100%;
+}
+</style>
diff --git a/base-manager-ui/admin/src/pages/basicset/system/user/modal/AddUserRole.vue b/base-manager-ui/admin/src/pages/basicset/system/user/modal/AddUserRole.vue
new file mode 100644
index 0000000000000000000000000000000000000000..37740311b0ec33ab7f4ae6dc7fe0629ba25a4fec
--- /dev/null
+++ b/base-manager-ui/admin/src/pages/basicset/system/user/modal/AddUserRole.vue
@@ -0,0 +1,140 @@
+<template>
+  <div>
+    <a-modal
+      title="鍒嗛厤瑙掕壊"
+      :visible="Visible"
+      @cancel="handleCancel"
+      :maskClosable="false"
+    >
+      <a-button slot="footer" @click="handleReset">閲嶇疆</a-button>
+      <a-button
+        slot="footer"
+        type="primary"
+        :loading="loading"
+        @click="handleOk"
+        >纭畾</a-button
+      >
+      <a-form-model
+        :model="form"
+        ref="form"
+        :rules="rules"
+        :label-col="{ span: 5 }"
+        :wrapper-col="{ span: 19 }"
+      >
+        <a-form-model-item label="閫夋嫨瑙掕壊" prop="roleIds">
+          <a-select
+            mode="multiple"
+            v-model="form.roleIds"
+            placeholder="璇烽€夋嫨瑙掕壊"
+          >
+            <a-select-option v-for="v in roleList" :key="v.id" :value="v.id">{{
+              v.name
+            }}</a-select-option>
+          </a-select>
+        </a-form-model-item>
+      </a-form-model>
+    </a-modal>
+  </div>
+</template>
+
+<script>
+import { getRoleList, saveUser } from "@/services/system";
+
+export default {
+  components: {},
+  props: {
+    addVisible: {
+      required: true,
+      type: Boolean,
+      default: false,
+    },
+  },
+  data() {
+    return {
+      loading: false,
+      form: {
+        roleIds: [],
+      },
+      roleList: [],
+      rules: {
+        roleIds: [{ required: true, message: "璇烽€夋嫨瑙掕壊", trigger: "change" }],
+      },
+    };
+  },
+  computed: {
+    Visible: {
+      get() {
+        return this.addVisible;
+      },
+      set(val) {
+        this.$emit("update:addVisible", val);
+      },
+    },
+  },
+  created() {
+    this.getRoleList();
+  },
+  methods: {
+    // 鑾峰彇瑙掕壊鍒楄〃
+    async getRoleList() {
+      let res = await getRoleList({
+        page: 1,
+        size: -1,
+      });
+      if (res.data.code == 1) {
+        let { data } = res.data.data;
+        this.roleList = data;
+      }
+    },
+    // 鏂板
+    onAdd() {
+      Object.assign(this.form, this.$options.data().form);
+      this.form.id && this.$delete(this.form, "id");
+    },
+    // 缂栬緫
+    onEdit(row) {
+      this.$nextTick(() => {
+        this.form = { ...row };
+        if (this.form.roleIds) {
+          this.form.roleIds = this.form.roleIds.split(",");
+        } else {
+          this.form.roleIds = [];
+        }
+      });
+    },
+    // 淇濆瓨
+    handleOk() {
+      this.$refs.form.validate(async (valid) => {
+        if (valid) {
+          this.loading = true;
+          let { id, roleIds, lastLoginAddress, mobile } = this.form;
+          let res = await saveUser({
+            id,
+            lastLoginAddress,
+            mobile,
+            roleIds: roleIds.join(","),
+          });
+          this.loading = false;
+          let { code, msg } = res.data;
+          if (code == 1) {
+            this.$message.success(msg);
+            this.$emit("addSuccess");
+            this.handleCancel();
+          }
+        }
+      });
+    },
+    // 閲嶇疆
+    handleReset() {
+      this.$refs.form.resetFields();
+    },
+    // 鍏抽棴
+    handleCancel() {
+      this.$refs.form.resetFields();
+      this.Visible = false;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>
diff --git a/base-manager-ui/admin/src/pages/basicset/workman/components/EditPersonel.vue b/base-manager-ui/admin/src/pages/basicset/workman/components/EditPersonel.vue
index bcb78df4cae945eb4146c57c6b4bbd8c92e55567..9257435e4e43f9b3c0d636b17ee754904b3bb39a 100644
--- a/base-manager-ui/admin/src/pages/basicset/workman/components/EditPersonel.vue
+++ b/base-manager-ui/admin/src/pages/basicset/workman/components/EditPersonel.vue
@@ -385,7 +385,6 @@ export default {
     };
     return {
       api: process.env.VUE_APP_API_BASE_URL + "/",
-      api2: process.env.VUE_APP_API_IMG_URL,
       accept: "image/jpeg,image/png", // 涓婁紶绫诲瀷
       fileList: [],
       loading: false,
@@ -541,8 +540,7 @@ export default {
               uid: -1,
               status: "done",
               name: this.form.photoPath,
-              url: this.api2 + this.form.photoPath,
-              url2: this.form.photoPath,
+              url: this.form.photoPath,
             },
           ];
         }
@@ -564,17 +562,25 @@ export default {
       this.$refs.formData.resetFields();
     },
     // 鐓х墖涓婁紶
-    handleChange({ fileList }) {
+    handleChange({ file, fileList }) {
+      if (
+        file.status &&
+        file.status != "removed" &&
+        file.response &&
+        file.response.code == -1
+      ) {
+        this.$message.error(file.response.msg);
+        fileList = fileList.filter((file) => file.response.code != -1);
+      }
       this.fileList = [...fileList].slice(-1);
       this.fileList = this.fileList.map((v) => {
         if (v.response) {
-          v.url2 = v.response.url;
-          v.url = this.api2 + v.response.url;
+          v.url = v.response.url;
         }
         return v;
       });
       if (this.fileList[0]) {
-        this.form.photoPath = this.fileList[0].url2;
+        this.form.photoPath = this.fileList[0].url;
       } else {
         this.form.photoPath = "";
       }
diff --git a/base-manager-ui/admin/src/pages/basicset/workman/components/addpersonnel.vue b/base-manager-ui/admin/src/pages/basicset/workman/components/addpersonnel.vue
index 2fc24e4b99fbdc69d79080c6b32076742c7cf0e6..dbfbb917367d1f92b9a812870fe69cc30b6c4cf7 100644
--- a/base-manager-ui/admin/src/pages/basicset/workman/components/addpersonnel.vue
+++ b/base-manager-ui/admin/src/pages/basicset/workman/components/addpersonnel.vue
@@ -582,8 +582,7 @@ export default {
             uid: -1,
             status: "done",
             name: this.form.photoPath,
-            url: this.api2 + this.form.photoPath,
-            url2: this.form.photoPath,
+            url: this.form.photoPath,
           },
         ];
       }
@@ -599,17 +598,25 @@ export default {
     },
 
     // 鐓х墖涓婁紶
-    handleChange({ fileList }) {
+    handleChange({ file, fileList }) {
+      if (
+        file.status &&
+        file.status != "removed" &&
+        file.response &&
+        file.response.code == -1
+      ) {
+        this.$message.error(file.response.msg);
+        fileList = fileList.filter((file) => file.response.code != -1);
+      }
       this.fileList = [...fileList].slice(-1);
       this.fileList = this.fileList.map((v) => {
         if (v.response) {
-          v.url2 = v.response.url;
-          v.url = this.api2 + v.response.url;
+          v.url = v.response.url;
         }
         return v;
       });
       if (this.fileList[0]) {
-        this.form.photoPath = this.fileList[0].url2;
+        this.form.photoPath = this.fileList[0].url;
       } else {
         this.form.photoPath = "";
       }
diff --git a/base-manager-ui/admin/src/pages/basicset/workman/personnel.vue b/base-manager-ui/admin/src/pages/basicset/workman/personnel.vue
index 8de98d0d2130b04616dbbac3b1e2c783c186a606..a72d40aa21a387b02ab666ad87718993f71ace8c 100644
--- a/base-manager-ui/admin/src/pages/basicset/workman/personnel.vue
+++ b/base-manager-ui/admin/src/pages/basicset/workman/personnel.vue
@@ -228,8 +228,8 @@
             <template slot="pic" slot-scope="text">
               <img
                 v-if="text.photoPath"
-                :src="api2 + text.photoPath"
-                @click="handlePreview(api2 + text.photoPath)"
+                :src="text.photoPath"
+                @click="handlePreview(text.photoPath)"
                 class="pht"
               />
 
@@ -408,7 +408,6 @@ export default {
       visibleEditPwd: false,
       editVisible: false,
       api: process.env.VUE_APP_API_BASE_URL + "/",
-      api2: process.env.VUE_APP_API_IMG_URL,
       siteId: local.getLocal("siteId"),
       deptData: [], // 閮ㄩ棬鏁版嵁
       windowData: [], // 绐楀彛鏁版嵁
diff --git a/base-manager-ui/admin/src/router/config.js b/base-manager-ui/admin/src/router/config.js
index 0d5f5627e7d8ee7bd2233a40f87a936798228924..24f362ed99f3417d54e36d48d05a6a1de727ea91 100644
--- a/base-manager-ui/admin/src/router/config.js
+++ b/base-manager-ui/admin/src/router/config.js
@@ -306,8 +306,34 @@ const options = {
           meta: {
             icon: "global",
           },
-          redirect: "system/parameter",
+          redirect: "system/user",
           children: [
+            {
+              path: "user",
+              name: "鐢ㄦ埛绠$悊",
+              component: () => import("@/pages/basicset/system/user/User"),
+              meta: { invisible: true },
+            },
+            {
+              path: "role",
+              name: "瑙掕壊绠$悊",
+              component: () => import("@/pages/basicset/system/role/Role"),
+              meta: { invisible: true },
+            },
+            {
+              path: "resource",
+              name: "璧勬簮绠$悊",
+              component: () =>
+                import("@/pages/basicset/system/resourceManage/Resource"),
+              meta: { invisible: true },
+            },
+            {
+              path: "dimension",
+              name: "缁村害绠$悊",
+              component: () =>
+                import("@/pages/basicset/system/dimension/Dimension"),
+              meta: { invisible: true },
+            },
             {
               path: "parameter",
               name: "绯荤粺鍙傛暟",
diff --git a/base-manager-ui/admin/src/services/basicsetApi.js b/base-manager-ui/admin/src/services/basicsetApi.js
index 18144bc0eee1501bd4f4562c9948d0cccad8afda..30799c256886cbb10fa60a7471b73652a54c4a61 100644
--- a/base-manager-ui/admin/src/services/basicsetApi.js
+++ b/base-manager-ui/admin/src/services/basicsetApi.js
@@ -349,6 +349,44 @@ module.exports = {
       save: `${BASE_URL}/base/task/save`,
       delete: `${BASE_URL}/base/task/delete`,
     },
+    // 缁村害
+    dimension: {
+      list: `${BASE_URL}/base/dimension/list`,
+      info: `${BASE_URL}/base/dimension/info`,
+      save: `${BASE_URL}/base/dimension/save`,
+      delete: `${BASE_URL}/base/dimension/delete`,
+    },
+    // 瑙掕壊璧勬簮缁村害
+    dimensionResource: {
+      list: `${BASE_URL}/base/dimension/resource/rule/list`,
+      info: `${BASE_URL}/base/dimension/resource/rule/info`,
+      save: `${BASE_URL}/base/dimension/resource/rule/save`,
+      delete: `${BASE_URL}/base/dimension/resource/rule/delete`,
+    },
+    // 鐢ㄦ埛
+    user: {
+      list: `${BASE_URL}/base/user/list`,
+      info: `${BASE_URL}/base/user/info`,
+      save: `${BASE_URL}/base/user/save`,
+      delete: `${BASE_URL}/base/user/delete`,
+    },
+    // 瑙掕壊
+    role: {
+      list: `${BASE_URL}/base/role/list`,
+      info: `${BASE_URL}/base/role/info`,
+      save: `${BASE_URL}/base/role/save`,
+      delete: `${BASE_URL}/base/role/delete`,
+      authList: `${BASE_URL}/base/role/auth/list`,
+      distributionSource: `${BASE_URL}/base/role/auth/distributionSource`,
+    },
+    // 璧勬簮
+    resource: {
+      list: `${BASE_URL}/base/resource/list`,
+      info: `${BASE_URL}/base/resource/info`,
+      save: `${BASE_URL}/base/resource/save`,
+      delete: `${BASE_URL}/base/resource/delete`,
+      refreshUrl: `${BASE_URL}/base/resource/refreshUrl`,
+    },
   },
   // 绔欑偣澶у巺
   hall: {
diff --git a/base-manager-ui/admin/src/services/index.js b/base-manager-ui/admin/src/services/index.js
index 3dfe985f673124a74637d9f96f7e3633ce18101b..b98d824949007763b00369ad04d1b6422c4e60b8 100644
--- a/base-manager-ui/admin/src/services/index.js
+++ b/base-manager-ui/admin/src/services/index.js
@@ -1,5 +1,12 @@
-import userService from './user'
+import userService from "./user";
 
-export {
-  userService
+import { upload } from "@/services/basicsetApi";
+
+import { request, METHOD } from "@/utils/request";
+
+// 涓婁紶鏂囦欢
+export async function uploadFile(data) {
+  return request(upload.file, METHOD.POST, data);
 }
+
+export { userService };
diff --git a/base-manager-ui/admin/src/services/system.js b/base-manager-ui/admin/src/services/system.js
index 3d22f80c1c804b25cbc80e23386607a1e2836c8d..3f083f6f62b45a537e348ac8affb7f03d09becd2 100644
--- a/base-manager-ui/admin/src/services/system.js
+++ b/base-manager-ui/admin/src/services/system.js
@@ -46,3 +46,112 @@ export async function saveSystemTask(data) {
 export async function delSystemTask(data) {
   return request(system.task.delete, METHOD.GET, data);
 }
+
+/*
+ * 鐢ㄦ埛绠$悊
+ */
+// 鑾峰彇鐢ㄦ埛鍒楄〃
+export async function getUserList(data) {
+  return request(system.user.list, METHOD.POST, data);
+}
+// 鑾峰彇鐢ㄦ埛淇℃伅
+export async function getUserInfo(data) {
+  return request(system.user.info, METHOD.GET, data);
+}
+// 淇濆瓨鐢ㄦ埛淇℃伅
+export async function saveUser(data) {
+  return request(system.user.save, METHOD.POST, data);
+}
+// 鍒犻櫎鐢ㄦ埛淇℃伅
+export async function delUser(data) {
+  return request(system.user.delete, METHOD.GET, data);
+}
+
+/*
+ * 瑙掕壊绠$悊
+ */
+// 鑾峰彇瑙掕壊鍒楄〃
+export async function getRoleList(data) {
+  return request(system.role.list, METHOD.POST, data);
+}
+// 鑾峰彇瑙掕壊淇℃伅
+export async function getRoleInfo(data) {
+  return request(system.role.info, METHOD.GET, data);
+}
+// 淇濆瓨瑙掕壊淇℃伅
+export async function saveRole(data) {
+  return request(system.role.save, METHOD.POST, data);
+}
+// 鍒犻櫎瑙掕壊淇℃伅
+export async function delRole(data) {
+  return request(system.role.delete, METHOD.GET, data);
+}
+// 鑾峰彇瑙掕壊璧勬簮鍒楄〃
+export async function getRoleResourceList(data) {
+  return request(system.role.authList, METHOD.POST, data);
+}
+// 淇濆瓨瑙掕壊璧勬簮淇℃伅
+export async function saveRoleResource(data) {
+  return request(system.role.distributionSource, METHOD.POST, data);
+}
+/*
+ * 璧勬簮绠$悊
+ */
+// 鑾峰彇璧勬簮鍒楄〃
+export async function getResourceList(data) {
+  return request(system.resource.list, METHOD.POST, data);
+}
+// 鑾峰彇璧勬簮淇℃伅
+export async function getResourceInfo(data) {
+  return request(system.resource.info, METHOD.GET, data);
+}
+// 淇濆瓨璧勬簮淇℃伅
+export async function saveResource(data) {
+  return request(system.resource.save, METHOD.POST, data);
+}
+// 鍒犻櫎璧勬簮淇℃伅
+export async function delResource(data) {
+  return request(system.resource.delete, METHOD.GET, data);
+}
+// 鍒锋柊璧勬簮
+export async function refreshResource(data) {
+  return request(system.resource.refreshUrl, METHOD.POST, data);
+}
+
+/*
+ * 缁村害绠$悊
+ */
+
+// 鑾峰彇缁村害鍒楄〃
+export async function getDimensionList(data) {
+  return request(system.dimension.list, METHOD.POST, data);
+}
+// 鑾峰彇缁村害淇℃伅
+export async function getDimensionInfo(data) {
+  return request(system.dimension.info, METHOD.GET, data);
+}
+// 淇濆瓨缁村害淇℃伅
+export async function saveDimension(data) {
+  return request(system.dimension.save, METHOD.POST, data);
+}
+// 鍒犻櫎缁村害淇℃伅
+export async function delDimension(data) {
+  return request(system.dimension.delete, METHOD.GET, data);
+}
+
+// 鑾峰彇瑙掕壊璧勬簮缁村害鍒楄〃
+export async function getDimResList(data) {
+  return request(system.dimensionResource.list, METHOD.POST, data);
+}
+// 鑾峰彇瑙掕壊璧勬簮缁村害淇℃伅
+export async function getDimResInfo(data) {
+  return request(system.dimensionResource.info, METHOD.GET, data);
+}
+// 淇濆瓨瑙掕壊璧勬簮缁村害淇℃伅
+export async function saveDimRes(data) {
+  return request(system.dimensionResource.save, METHOD.POST, data);
+}
+// 鍒犻櫎瑙掕壊璧勬簮缁村害淇℃伅
+export async function delDimRes(data) {
+  return request(system.dimensionResource.delete, METHOD.GET, data);
+}
diff --git a/base-manager-ui/admin/vue.config.js b/base-manager-ui/admin/vue.config.js
index 11e193b74bb09509c978ded46186ed7e6882fd83..fff776ef148dc366c19b3e0338ae2edcc31d6af9 100644
--- a/base-manager-ui/admin/vue.config.js
+++ b/base-manager-ui/admin/vue.config.js
@@ -49,6 +49,11 @@ module.exports = {
         },
         // cookieDomainRewrite: 'localhost',
       },
+      "/file": {
+        //姝ゅ瑕佷笌 /services/api.js 涓殑 API_PROXY_PREFIX 鍊间繚鎸佷竴鑷�
+        target: process.env.VUE_APP_API_BASE_URL,
+        changeOrigin: true,
+      },
     },
   },
   pluginOptions: {
diff --git a/base-manager-ui/admin/yarn.lock b/base-manager-ui/admin/yarn.lock
index fe5ba1edbce142280d0b2228dcae2f4790159aba..d7623b3fe7c9220b342ea8cdba88264b9e43cfc8 100644
--- a/base-manager-ui/admin/yarn.lock
+++ b/base-manager-ui/admin/yarn.lock
@@ -24,7 +24,7 @@
     "@ant-design/colors" "^3.1.0"
     babel-runtime "^6.26.0"
 
-"@ant-design/icons@^2.1.1":
+"@ant-design/icons@^2.0.0", "@ant-design/icons@^2.1.1":
   version "2.1.1"
   resolved "https://registry.npm.taobao.org/@ant-design/icons/download/@ant-design/icons-2.1.1.tgz"
   integrity sha1-e5wI3/1PXUHbZn2dvl4BB9C9mko=
@@ -82,31 +82,6 @@
     topojson-client "^3.0.0"
     wolfy87-eventemitter "^5.1.0"
 
-"@antv/g2-brush@^0.0.2":
-  version "0.0.2"
-  resolved "https://registry.npm.taobao.org/@antv/g2-brush/download/@antv/g2-brush-0.0.2.tgz"
-  integrity sha1-C2Xz67+CaQICkT0LZ1mrKQD6qEE=
-
-"@antv/g2-plugin-slider@^2.1.0":
-  version "2.1.1"
-  resolved "https://registry.npm.taobao.org/@antv/g2-plugin-slider/download/@antv/g2-plugin-slider-2.1.1.tgz"
-  integrity sha1-wgxfHPCFvqR4+KsfyEg35FxGoGU=
-
-"@antv/g2@~3.5.3":
-  version "3.5.17"
-  resolved "https://registry.npm.taobao.org/@antv/g2/download/@antv/g2-3.5.17.tgz?cache=0&sync_timestamp=1591760557259&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fg2%2Fdownload%2F%40antv%2Fg2-3.5.17.tgz"
-  integrity sha1-Asi6xhDSHSi04jYAvHbEjn9ZyRk=
-  dependencies:
-    "@antv/adjust" "~0.1.0"
-    "@antv/attr" "~0.1.2"
-    "@antv/component" "~0.3.3"
-    "@antv/coord" "~0.1.0"
-    "@antv/g" "~3.4.10"
-    "@antv/scale" "~0.1.1"
-    "@antv/util" "~1.3.1"
-    venn.js "~0.2.20"
-    wolfy87-eventemitter "~5.1.0"
-
 "@antv/g@~3.3.5":
   version "3.3.6"
   resolved "https://registry.npm.taobao.org/@antv/g/download/@antv/g-3.3.6.tgz?cache=0&sync_timestamp=1590750667671&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fg%2Fdownload%2F%40antv%2Fg-3.3.6.tgz"
@@ -131,6 +106,31 @@
     d3-timer "~1.0.6"
     detect-browser "^5.1.0"
 
+"@antv/g2-brush@^0.0.2":
+  version "0.0.2"
+  resolved "https://registry.npm.taobao.org/@antv/g2-brush/download/@antv/g2-brush-0.0.2.tgz"
+  integrity sha1-C2Xz67+CaQICkT0LZ1mrKQD6qEE=
+
+"@antv/g2-plugin-slider@^2.1.0":
+  version "2.1.1"
+  resolved "https://registry.npm.taobao.org/@antv/g2-plugin-slider/download/@antv/g2-plugin-slider-2.1.1.tgz"
+  integrity sha1-wgxfHPCFvqR4+KsfyEg35FxGoGU=
+
+"@antv/g2@>=3.2.8", "@antv/g2@~3.5.3":
+  version "3.5.17"
+  resolved "https://registry.npm.taobao.org/@antv/g2/download/@antv/g2-3.5.17.tgz?cache=0&sync_timestamp=1591760557259&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fg2%2Fdownload%2F%40antv%2Fg2-3.5.17.tgz"
+  integrity sha1-Asi6xhDSHSi04jYAvHbEjn9ZyRk=
+  dependencies:
+    "@antv/adjust" "~0.1.0"
+    "@antv/attr" "~0.1.2"
+    "@antv/component" "~0.3.3"
+    "@antv/coord" "~0.1.0"
+    "@antv/g" "~3.4.10"
+    "@antv/scale" "~0.1.1"
+    "@antv/util" "~1.3.1"
+    venn.js "~0.2.20"
+    wolfy87-eventemitter "~5.1.0"
+
 "@antv/gl-matrix@^2.7.1", "@antv/gl-matrix@~2.7.1":
   version "2.7.1"
   resolved "https://registry.npm.taobao.org/@antv/gl-matrix/download/@antv/gl-matrix-2.7.1.tgz"
@@ -172,13 +172,6 @@
   dependencies:
     "@babel/highlight" "^7.10.1"
 
-"@babel/code-frame@^7.10.3":
-  version "7.10.3"
-  resolved "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.10.3.tgz?cache=0&sync_timestamp=1592600086981&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.3.tgz"
-  integrity sha1-MkvP2NNc09R9rhjN5j11IIZDXpo=
-  dependencies:
-    "@babel/highlight" "^7.10.3"
-
 "@babel/compat-data@^7.10.1":
   version "7.10.1"
   resolved "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.10.1.tgz?cache=0&sync_timestamp=1590617980292&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.10.1.tgz"
@@ -188,29 +181,7 @@
     invariant "^2.2.4"
     semver "^5.5.0"
 
-"@babel/core@^7.8.4":
-  version "7.10.3"
-  resolved "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.10.3.tgz?cache=0&sync_timestamp=1592600149762&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.3.tgz"
-  integrity sha1-c7Do3e7B4/3Xot5YemDhfEQOx34=
-  dependencies:
-    "@babel/code-frame" "^7.10.3"
-    "@babel/generator" "^7.10.3"
-    "@babel/helper-module-transforms" "^7.10.1"
-    "@babel/helpers" "^7.10.1"
-    "@babel/parser" "^7.10.3"
-    "@babel/template" "^7.10.3"
-    "@babel/traverse" "^7.10.3"
-    "@babel/types" "^7.10.3"
-    convert-source-map "^1.7.0"
-    debug "^4.1.0"
-    gensync "^1.0.0-beta.1"
-    json5 "^2.1.2"
-    lodash "^4.17.13"
-    resolve "^1.3.2"
-    semver "^5.4.1"
-    source-map "^0.5.0"
-
-"@babel/core@^7.9.6":
+"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.8.4", "@babel/core@^7.9.6":
   version "7.10.2"
   resolved "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.10.2.tgz"
   integrity sha1-vWeGBGZoqSWsK9L9lbV5uSojs2o=
@@ -242,16 +213,6 @@
     lodash "^4.17.13"
     source-map "^0.5.0"
 
-"@babel/generator@^7.10.3":
-  version "7.10.3"
-  resolved "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.10.3.tgz?cache=0&sync_timestamp=1592600086494&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.10.3.tgz"
-  integrity sha1-Mrmg2WOnHXpU9fbBVlnD28KlI6U=
-  dependencies:
-    "@babel/types" "^7.10.3"
-    jsesc "^2.5.1"
-    lodash "^4.17.13"
-    source-map "^0.5.0"
-
 "@babel/helper-annotate-as-pure@^7.10.1":
   version "7.10.1"
   resolved "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.10.1.tgz?cache=0&sync_timestamp=1590617982550&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.1.tgz"
@@ -325,15 +286,6 @@
     "@babel/template" "^7.10.1"
     "@babel/types" "^7.10.1"
 
-"@babel/helper-function-name@^7.10.3":
-  version "7.10.3"
-  resolved "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.10.3.tgz?cache=0&sync_timestamp=1592600096362&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.3.tgz"
-  integrity sha1-eTFs11qfolupeH/1RUQwftRE8Zc=
-  dependencies:
-    "@babel/helper-get-function-arity" "^7.10.3"
-    "@babel/template" "^7.10.3"
-    "@babel/types" "^7.10.3"
-
 "@babel/helper-get-function-arity@^7.10.1":
   version "7.10.1"
   resolved "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.10.1.tgz"
@@ -341,13 +293,6 @@
   dependencies:
     "@babel/types" "^7.10.1"
 
-"@babel/helper-get-function-arity@^7.10.3":
-  version "7.10.3"
-  resolved "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.10.3.tgz?cache=0&sync_timestamp=1592600091870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.3.tgz"
-  integrity sha1-Oij3sozMdxnqzZIjtln98WLkxF4=
-  dependencies:
-    "@babel/types" "^7.10.3"
-
 "@babel/helper-hoist-variables@^7.10.1":
   version "7.10.1"
   resolved "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.10.1.tgz?cache=0&sync_timestamp=1590617967234&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.10.1.tgz"
@@ -442,11 +387,6 @@
   resolved "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.1.tgz"
   integrity sha1-V3CwwagmxPU/Xt5eFTFj4DGOlLU=
 
-"@babel/helper-validator-identifier@^7.10.3":
-  version "7.10.3"
-  resolved "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.3.tgz"
-  integrity sha1-YNmEf5jEzqGyeeAF/bfCi+VBLRU=
-
 "@babel/helper-wrap-function@^7.10.1":
   version "7.10.1"
   resolved "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.10.1.tgz?cache=0&sync_timestamp=1590617971460&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.10.1.tgz"
@@ -475,16 +415,7 @@
     chalk "^2.0.0"
     js-tokens "^4.0.0"
 
-"@babel/highlight@^7.10.3":
-  version "7.10.3"
-  resolved "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.3.tgz?cache=0&sync_timestamp=1592600077587&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.3.tgz"
-  integrity sha1-xjO7NK3wfFwTFWaS9ZIsgexT8o0=
-  dependencies:
-    "@babel/helper-validator-identifier" "^7.10.3"
-    chalk "^2.0.0"
-    js-tokens "^4.0.0"
-
-"@babel/parser@^7.10.1", "@babel/parser@^7.10.2", "@babel/parser@^7.10.3", "@babel/parser@^7.7.0":
+"@babel/parser@^7.10.1", "@babel/parser@^7.10.2", "@babel/parser@^7.7.0":
   version "7.17.3"
   resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.17.3.tgz"
   integrity sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==
@@ -1030,15 +961,6 @@
     "@babel/parser" "^7.10.1"
     "@babel/types" "^7.10.1"
 
-"@babel/template@^7.10.3":
-  version "7.10.3"
-  resolved "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.3.tgz?cache=0&sync_timestamp=1592600093638&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.3.tgz"
-  integrity sha1-TRO8jjC/lbDOnRddMDBvQqLJp7g=
-  dependencies:
-    "@babel/code-frame" "^7.10.3"
-    "@babel/parser" "^7.10.3"
-    "@babel/types" "^7.10.3"
-
 "@babel/traverse@^7.10.1", "@babel/traverse@^7.7.0":
   version "7.10.1"
   resolved "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.10.1.tgz"
@@ -1054,21 +976,6 @@
     globals "^11.1.0"
     lodash "^4.17.13"
 
-"@babel/traverse@^7.10.3":
-  version "7.10.3"
-  resolved "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.10.3.tgz"
-  integrity sha1-CwFzF5Sqe3eyFLzZZmHxgoEVXX4=
-  dependencies:
-    "@babel/code-frame" "^7.10.3"
-    "@babel/generator" "^7.10.3"
-    "@babel/helper-function-name" "^7.10.3"
-    "@babel/helper-split-export-declaration" "^7.10.1"
-    "@babel/parser" "^7.10.3"
-    "@babel/types" "^7.10.3"
-    debug "^4.1.0"
-    globals "^11.1.0"
-    lodash "^4.17.13"
-
 "@babel/types@^7.10.1", "@babel/types@^7.10.2", "@babel/types@^7.4.4", "@babel/types@^7.7.0":
   version "7.10.2"
   resolved "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.10.2.tgz"
@@ -1078,15 +985,6 @@
     lodash "^4.17.13"
     to-fast-properties "^2.0.0"
 
-"@babel/types@^7.10.3":
-  version "7.10.3"
-  resolved "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.10.3.tgz?cache=0&sync_timestamp=1592600077260&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.3.tgz"
-  integrity sha1-ZTXjt5/qhqawngEuqFKPk1CZ3o4=
-  dependencies:
-    "@babel/helper-validator-identifier" "^7.10.3"
-    lodash "^4.17.13"
-    to-fast-properties "^2.0.0"
-
 "@hapi/address@2.x.x":
   version "2.1.4"
   resolved "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.4.tgz?cache=0&sync_timestamp=1584145510980&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz"
@@ -1097,7 +995,7 @@
   resolved "https://registry.npm.taobao.org/@hapi/bourne/download/@hapi/bourne-1.3.2.tgz?cache=0&sync_timestamp=1578129161086&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fbourne%2Fdownload%2F%40hapi%2Fbourne-1.3.2.tgz"
   integrity sha1-CnCVreoGckPOMoPhtWuKj0U7JCo=
 
-"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0":
+"@hapi/hoek@^8.3.0", "@hapi/hoek@8.x.x":
   version "8.5.1"
   resolved "https://registry.npm.taobao.org/@hapi/hoek/download/@hapi/hoek-8.5.1.tgz"
   integrity sha1-/elgZMpEbeyMVajC8TCVewcMbgY=
@@ -1279,11 +1177,6 @@
   resolved "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.5.tgz?cache=0&sync_timestamp=1591720725820&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.5.tgz"
   integrity sha1-3M5EMOZLRDuolF8CkPtWStW6xt0=
 
-"@types/json-schema@^7.0.5":
-  version "7.0.11"
-  resolved "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz"
-  integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==
-
 "@types/keyv@*":
   version "3.1.2"
   resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.2.tgz"
@@ -1442,28 +1335,7 @@
     lodash.kebabcase "^4.1.1"
     svg-tags "^1.0.0"
 
-"@vue/babel-preset-app@^4.1.2":
-  version "4.4.6"
-  resolved "https://registry.npm.taobao.org/@vue/babel-preset-app/download/@vue/babel-preset-app-4.4.6.tgz"
-  integrity sha1-kq75Fug/Gr4KLtHp4s71szL5WMQ=
-  dependencies:
-    "@babel/core" "^7.9.6"
-    "@babel/helper-compilation-targets" "^7.9.6"
-    "@babel/helper-module-imports" "^7.8.3"
-    "@babel/plugin-proposal-class-properties" "^7.8.3"
-    "@babel/plugin-proposal-decorators" "^7.8.3"
-    "@babel/plugin-syntax-dynamic-import" "^7.8.3"
-    "@babel/plugin-syntax-jsx" "^7.8.3"
-    "@babel/plugin-transform-runtime" "^7.9.6"
-    "@babel/preset-env" "^7.9.6"
-    "@babel/runtime" "^7.9.6"
-    "@vue/babel-preset-jsx" "^1.1.2"
-    babel-plugin-dynamic-import-node "^2.3.3"
-    core-js "^3.6.5"
-    core-js-compat "^3.6.5"
-    semver "^6.1.0"
-
-"@vue/babel-preset-app@^4.4.4":
+"@vue/babel-preset-app@^4.1.2", "@vue/babel-preset-app@^4.4.4":
   version "4.4.4"
   resolved "https://registry.npm.taobao.org/@vue/babel-preset-app/download/@vue/babel-preset-app-4.4.4.tgz?cache=0&sync_timestamp=1591967014564&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-preset-app%2Fdownload%2F%40vue%2Fbabel-preset-app-4.4.4.tgz"
   integrity sha1-5AkpyonqPVR+ogzwoVwiLJrRujg=
@@ -1573,7 +1445,7 @@
   resolved "https://registry.npmmirror.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.15.tgz"
   integrity sha512-fqap+4HN+w+InDxlA3hZTOGE0tzBTgXhKLoDydhywqgmhQ1D9JA6Feh94ze6tG8DsWX58/ujYUqA8jAz17FJtg==
 
-"@vue/cli-service@^4.4.0":
+"@vue/cli-service@^3.0.0 || ^4.0.0-0", "@vue/cli-service@^4.4.0":
   version "4.5.15"
   resolved "https://registry.npmmirror.com/@vue/cli-service/-/cli-service-4.5.15.tgz"
   integrity sha512-sFWnLYVCn4zRfu45IcsIE9eXM0YpDV3S11vlM2/DVbIPAGoYo5ySpSof6aHcIvkeGsIsrHFpPHzNvDZ/efs7jA==
@@ -2018,16 +1890,16 @@ acorn-walk@^7.1.1:
   resolved "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.1.1.tgz"
   integrity sha1-NF8N/61cc15zc9L+yaECPmpEuD4=
 
+"acorn@^6.0.0 || ^7.0.0", acorn@^7.1.1, acorn@^7.4.0:
+  version "7.4.1"
+  resolved "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz"
+  integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
+
 acorn@^6.4.1:
   version "6.4.2"
   resolved "https://registry.npmmirror.com/acorn/-/acorn-6.4.2.tgz"
   integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==
 
-acorn@^7.1.1, acorn@^7.4.0:
-  version "7.4.1"
-  resolved "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz"
-  integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
-
 add-dom-event-listener@^1.0.2:
   version "1.1.0"
   resolved "https://registry.npm.taobao.org/add-dom-event-listener/download/add-dom-event-listener-1.1.0.tgz"
@@ -2068,12 +1940,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1:
   resolved "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.4.1.tgz"
   integrity sha1-75FuJxxkrBIXH9g4TqrmsjRYVNo=
 
-ajv-keywords@^3.5.2:
-  version "3.5.2"
-  resolved "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz"
-  integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
-
-ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5:
+ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5, ajv@^6.9.1, ajv@>=5.0.0:
   version "6.12.2"
   resolved "https://registry.npm.taobao.org/ajv/download/ajv-6.12.2.tgz"
   integrity sha1-xinF7O0XuvMUQ3kY0tqIyZ1ZWM0=
@@ -2083,16 +1950,6 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5:
     json-schema-traverse "^0.4.1"
     uri-js "^4.2.2"
 
-ajv@^6.12.4:
-  version "6.12.6"
-  resolved "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz"
-  integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
-  dependencies:
-    fast-deep-equal "^3.1.1"
-    fast-json-stable-stringify "^2.0.0"
-    json-schema-traverse "^0.4.1"
-    uri-js "^4.2.2"
-
 algoliasearch@^3.24.5:
   version "3.35.1"
   resolved "https://registry.npm.taobao.org/algoliasearch/download/algoliasearch-3.35.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Falgoliasearch%2Fdownload%2Falgoliasearch-3.35.1.tgz"
@@ -2298,16 +2155,16 @@ arr-union@^3.1.0:
   resolved "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz"
   integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
 
-array-flatten@1.1.1:
-  version "1.1.1"
-  resolved "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz?cache=0&sync_timestamp=1574313384951&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz"
-  integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
-
 array-flatten@^2.1.0:
   version "2.1.2"
   resolved "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz?cache=0&sync_timestamp=1574313384951&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz"
   integrity sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=
 
+array-flatten@1.1.1:
+  version "1.1.1"
+  resolved "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz?cache=0&sync_timestamp=1574313384951&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz"
+  integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
+
 array-tree-filter@^2.1.0:
   version "2.1.0"
   resolved "https://registry.npm.taobao.org/array-tree-filter/download/array-tree-filter-2.1.0.tgz"
@@ -2330,17 +2187,6 @@ array-unique@^0.3.2:
   resolved "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz"
   integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
 
-array.prototype.reduce@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.npmmirror.com/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz"
-  integrity sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw==
-  dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.3"
-    es-abstract "^1.19.2"
-    es-array-method-boxes-properly "^1.0.0"
-    is-string "^1.0.7"
-
 asn1.js@^4.0.0:
   version "4.10.1"
   resolved "https://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz"
@@ -2357,7 +2203,7 @@ asn1@~0.2.3:
   dependencies:
     safer-buffer "~2.1.0"
 
-assert-plus@1.0.0, assert-plus@^1.0.0:
+assert-plus@^1.0.0, assert-plus@1.0.0:
   version "1.0.0"
   resolved "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz"
   integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
@@ -2505,7 +2351,7 @@ babel-polyfill@^6.26.0:
     core-js "^2.5.0"
     regenerator-runtime "^0.10.5"
 
-babel-runtime@6.x, babel-runtime@^6.23.0, babel-runtime@^6.26.0:
+babel-runtime@^6.23.0, babel-runtime@^6.26.0, babel-runtime@6.x:
   version "6.26.0"
   resolved "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz"
   integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
@@ -2518,16 +2364,6 @@ balanced-match@^1.0.0:
   resolved "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz"
   integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
 
-base64-arraybuffer@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz"
-  integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==
-
-base64-js@^1.0.2:
-  version "1.3.1"
-  resolved "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz"
-  integrity sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE=
-
 base@^0.11.1:
   version "0.11.2"
   resolved "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz"
@@ -2541,6 +2377,16 @@ base@^0.11.1:
     mixin-deep "^1.2.0"
     pascalcase "^0.1.1"
 
+base64-arraybuffer@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz"
+  integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==
+
+base64-js@^1.0.2:
+  version "1.3.1"
+  resolved "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz"
+  integrity sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE=
+
 batch@0.6.1:
   version "0.6.1"
   resolved "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz"
@@ -2583,13 +2429,6 @@ binary-extensions@^2.0.0:
   resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz"
   integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
 
-bindings@^1.5.0:
-  version "1.5.0"
-  resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
-  integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
-  dependencies:
-    file-uri-to-path "1.0.0"
-
 blob.js@^1.0.1:
   version "1.0.1"
   resolved "https://registry.npmmirror.com/blob.js/-/blob.js-1.0.1.tgz"
@@ -2600,7 +2439,17 @@ bluebird@^3.1.1, bluebird@^3.5.5:
   resolved "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz"
   integrity sha1-nyKcFb4nJFT/qXOs4NvueaGww28=
 
-bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0:
+bn.js@^4.0.0:
+  version "4.11.9"
+  resolved "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz"
+  integrity sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=
+
+bn.js@^4.1.0:
+  version "4.11.9"
+  resolved "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz"
+  integrity sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=
+
+bn.js@^4.4.0:
   version "4.11.9"
   resolved "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz"
   integrity sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=
@@ -2681,7 +2530,14 @@ braces@^2.3.1, braces@^2.3.2:
     split-string "^3.0.2"
     to-regex "^3.0.1"
 
-braces@^3.0.1, braces@~3.0.2:
+braces@^3.0.1:
+  version "3.0.2"
+  resolved "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz"
+  integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+  dependencies:
+    fill-range "^7.0.1"
+
+braces@~3.0.2:
   version "3.0.2"
   resolved "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz"
   integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
@@ -2691,7 +2547,7 @@ braces@^3.0.1, braces@~3.0.2:
 brorand@^1.0.1:
   version "1.1.0"
   resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz"
-  integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
+  integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==
 
 browserify-aes@^1.0.0, browserify-aes@^1.0.4:
   version "1.2.0"
@@ -2754,15 +2610,15 @@ browserify-zlib@^0.2.0:
   dependencies:
     pako "~1.0.5"
 
-browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.21.4, browserslist@^4.8.5:
-  version "4.23.0"
-  resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.0.tgz"
-  integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==
+browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.21.4, browserslist@^4.8.5, "browserslist@>= 4.21.0":
+  version "4.21.4"
+  resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.4.tgz"
+  integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==
   dependencies:
-    caniuse-lite "^1.0.30001587"
-    electron-to-chromium "^1.4.668"
-    node-releases "^2.0.14"
-    update-browserslist-db "^1.0.13"
+    caniuse-lite "^1.0.30001400"
+    electron-to-chromium "^1.4.251"
+    node-releases "^2.0.6"
+    update-browserslist-db "^1.0.9"
 
 buffer-from@^1.0.0:
   version "1.1.1"
@@ -2838,7 +2694,28 @@ cacache@^11.2.0:
     unique-filename "^1.1.1"
     y18n "^4.0.0"
 
-cacache@^12.0.2, cacache@^12.0.3:
+cacache@^12.0.2:
+  version "12.0.4"
+  resolved "https://registry.npm.taobao.org/cacache/download/cacache-12.0.4.tgz"
+  integrity sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw=
+  dependencies:
+    bluebird "^3.5.5"
+    chownr "^1.1.1"
+    figgy-pudding "^3.5.1"
+    glob "^7.1.4"
+    graceful-fs "^4.1.15"
+    infer-owner "^1.0.3"
+    lru-cache "^5.1.1"
+    mississippi "^3.0.0"
+    mkdirp "^0.5.1"
+    move-concurrently "^1.0.1"
+    promise-inflight "^1.0.1"
+    rimraf "^2.6.3"
+    ssri "^6.0.1"
+    unique-filename "^1.1.1"
+    y18n "^4.0.0"
+
+cacache@^12.0.3:
   version "12.0.4"
   resolved "https://registry.npm.taobao.org/cacache/download/cacache-12.0.4.tgz"
   integrity sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw=
@@ -2994,10 +2871,10 @@ caniuse-api@^3.0.0:
     lodash.memoize "^4.1.2"
     lodash.uniq "^4.5.0"
 
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001442, caniuse-lite@^1.0.30001587:
-  version "1.0.30001593"
-  resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001593.tgz"
-  integrity sha512-UWM1zlo3cZfkpBysd7AS+z+v007q9G1+fLTUU42rQnY6t2axoogPW/xol6T7juU5EUoOhML4WgBIdG+9yYqAjQ==
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001442:
+  version "1.0.30001442"
+  resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz"
+  integrity sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==
 
 case-sensitive-paths-webpack-plugin@^2.3.0:
   version "2.3.0"
@@ -3026,7 +2903,18 @@ cfb@^1.1.4:
     crc-32 "~1.2.0"
     printj "~1.3.0"
 
-chalk@^1.1.1, chalk@^1.1.3:
+chalk@^1.1.1:
+  version "1.1.3"
+  resolved "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz"
+  integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==
+  dependencies:
+    ansi-styles "^2.2.1"
+    escape-string-regexp "^1.0.2"
+    has-ansi "^2.0.0"
+    strip-ansi "^3.0.0"
+    supports-color "^2.0.0"
+
+chalk@^1.1.3:
   version "1.1.3"
   resolved "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz"
   integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==
@@ -3054,7 +2942,15 @@ chalk@^3.0.0:
     ansi-styles "^4.1.0"
     supports-color "^7.1.0"
 
-chalk@^4.0.0, chalk@^4.1.0:
+chalk@^4.0.0:
+  version "4.1.2"
+  resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz"
+  integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+  dependencies:
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
+
+chalk@^4.1.0:
   version "4.1.2"
   resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz"
   integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
@@ -3128,7 +3024,12 @@ chrome-trace-event@^1.0.2:
   dependencies:
     tslib "^1.9.0"
 
-ci-info@^1.5.0, ci-info@^1.6.0:
+ci-info@^1.5.0:
+  version "1.6.0"
+  resolved "https://registry.npmmirror.com/ci-info/-/ci-info-1.6.0.tgz"
+  integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==
+
+ci-info@^1.6.0:
   version "1.6.0"
   resolved "https://registry.npmmirror.com/ci-info/-/ci-info-1.6.0.tgz"
   integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==
@@ -3278,7 +3179,7 @@ clone@^1.0.2:
 clone@^2.1.1, clone@^2.1.2:
   version "2.1.2"
   resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz"
-  integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
+  integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==
 
 coa@^2.0.2:
   version "2.0.2"
@@ -3319,12 +3220,12 @@ color-convert@^2.0.1:
   dependencies:
     color-name "~1.1.4"
 
-color-name@1.1.3:
+color-name@^1.0.0, color-name@1.1.3:
   version "1.1.3"
   resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz"
   integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
 
-color-name@^1.0.0, color-name@~1.1.4:
+color-name@~1.1.4:
   version "1.1.4"
   resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz"
   integrity sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=
@@ -3352,26 +3253,31 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
   dependencies:
     delayed-stream "~1.0.0"
 
-commander@*, commander@2, commander@^2.18.0, commander@^2.20.0:
+commander@*, commander@^2.18.0, commander@^2.20.0, commander@2:
   version "2.20.3"
   resolved "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz"
   integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
 
-commander@2.17.x, commander@~2.17.1:
-  version "2.17.1"
-  resolved "https://registry.npmmirror.com/commander/-/commander-2.17.1.tgz"
-  integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==
-
 commander@~2.14.1:
   version "2.14.1"
   resolved "https://registry.npmmirror.com/commander/-/commander-2.14.1.tgz"
   integrity sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==
 
+commander@~2.17.1:
+  version "2.17.1"
+  resolved "https://registry.npmmirror.com/commander/-/commander-2.17.1.tgz"
+  integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==
+
 commander@~2.19.0:
   version "2.19.0"
   resolved "https://registry.npmmirror.com/commander/-/commander-2.19.0.tgz"
   integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
 
+commander@2.17.x:
+  version "2.17.1"
+  resolved "https://registry.npmmirror.com/commander/-/commander-2.17.1.tgz"
+  integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==
+
 commondir@^1.0.1:
   version "1.0.1"
   resolved "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz"
@@ -3564,7 +3470,12 @@ core-js-compat@^3.6.2, core-js-compat@^3.6.5:
     browserslist "^4.8.5"
     semver "7.0.0"
 
-core-js@^2.4.0, core-js@^2.5.0:
+core-js@^2.4.0:
+  version "2.6.11"
+  resolved "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&sync_timestamp=1586450269267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz"
+  integrity sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=
+
+core-js@^2.5.0:
   version "2.6.11"
   resolved "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&sync_timestamp=1586450269267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz"
   integrity sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=
@@ -3574,7 +3485,7 @@ core-js@^3.6.4, core-js@^3.6.5:
   resolved "https://registry.npm.taobao.org/core-js/download/core-js-3.6.5.tgz?cache=0&sync_timestamp=1586450269267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.5.tgz"
   integrity sha1-c5XcJzrzf7LlDpvT2f6EEoUjHRo=
 
-core-util-is@1.0.2, core-util-is@~1.0.0:
+core-util-is@~1.0.0, core-util-is@1.0.2:
   version "1.0.2"
   resolved "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz"
   integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
@@ -3686,7 +3597,7 @@ crypto-random-string@^2.0.0:
   resolved "https://registry.npm.taobao.org/crypto-random-string/download/crypto-random-string-2.0.0.tgz?cache=0&sync_timestamp=1583560482221&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcrypto-random-string%2Fdownload%2Fcrypto-random-string-2.0.0.tgz"
   integrity sha1-7yp6lm7BEIM4g2m6oC6+rSKbMNU=
 
-css-color-names@0.0.4, css-color-names@^0.0.4:
+css-color-names@^0.0.4, css-color-names@0.0.4:
   version "0.0.4"
   resolved "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz"
   integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=
@@ -3706,24 +3617,7 @@ css-line-break@^2.1.0:
   dependencies:
     utrie "^1.0.2"
 
-css-loader@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.npm.taobao.org/css-loader/download/css-loader-2.1.1.tgz?cache=0&sync_timestamp=1592056847239&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-2.1.1.tgz"
-  integrity sha1-2CVPcuQSuyI4u0TdZ0/770lzM+o=
-  dependencies:
-    camelcase "^5.2.0"
-    icss-utils "^4.1.0"
-    loader-utils "^1.2.3"
-    normalize-path "^3.0.0"
-    postcss "^7.0.14"
-    postcss-modules-extract-imports "^2.0.0"
-    postcss-modules-local-by-default "^2.0.6"
-    postcss-modules-scope "^2.1.0"
-    postcss-modules-values "^2.0.0"
-    postcss-value-parser "^3.3.0"
-    schema-utils "^1.0.0"
-
-css-loader@^3.5.3:
+css-loader@*, css-loader@^3.5.3:
   version "3.6.0"
   resolved "https://registry.npmmirror.com/css-loader/-/css-loader-3.6.0.tgz"
   integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==
@@ -3742,13 +3636,30 @@ css-loader@^3.5.3:
     schema-utils "^2.7.0"
     semver "^6.3.0"
 
-css-parse@~2.0.0:
-  version "2.0.0"
-  resolved "https://registry.npm.taobao.org/css-parse/download/css-parse-2.0.0.tgz"
-  integrity sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=
-  dependencies:
-    css "^2.0.0"
-
+css-loader@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.npm.taobao.org/css-loader/download/css-loader-2.1.1.tgz?cache=0&sync_timestamp=1592056847239&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-2.1.1.tgz"
+  integrity sha1-2CVPcuQSuyI4u0TdZ0/770lzM+o=
+  dependencies:
+    camelcase "^5.2.0"
+    icss-utils "^4.1.0"
+    loader-utils "^1.2.3"
+    normalize-path "^3.0.0"
+    postcss "^7.0.14"
+    postcss-modules-extract-imports "^2.0.0"
+    postcss-modules-local-by-default "^2.0.6"
+    postcss-modules-scope "^2.1.0"
+    postcss-modules-values "^2.0.0"
+    postcss-value-parser "^3.3.0"
+    schema-utils "^1.0.0"
+
+css-parse@~2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npm.taobao.org/css-parse/download/css-parse-2.0.0.tgz"
+  integrity sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=
+  dependencies:
+    css "^2.0.0"
+
 css-select-base-adapter@^0.1.1:
   version "0.1.1"
   resolved "https://registry.npmmirror.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz"
@@ -3774,14 +3685,6 @@ css-select@^2.0.0:
     domutils "^1.7.0"
     nth-check "^1.0.2"
 
-css-tree@1.0.0-alpha.37:
-  version "1.0.0-alpha.37"
-  resolved "https://registry.npmmirror.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz"
-  integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==
-  dependencies:
-    mdn-data "2.0.4"
-    source-map "^0.6.1"
-
 css-tree@^1.1.2:
   version "1.1.3"
   resolved "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz"
@@ -3790,16 +3693,24 @@ css-tree@^1.1.2:
     mdn-data "2.0.14"
     source-map "^0.6.1"
 
-css-what@2.1:
-  version "2.1.3"
-  resolved "https://registry.npm.taobao.org/css-what/download/css-what-2.1.3.tgz?cache=0&sync_timestamp=1590961613221&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-2.1.3.tgz"
-  integrity sha1-ptdgRXM2X+dGhsPzEcVlE9iChfI=
+css-tree@1.0.0-alpha.37:
+  version "1.0.0-alpha.37"
+  resolved "https://registry.npmmirror.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz"
+  integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==
+  dependencies:
+    mdn-data "2.0.4"
+    source-map "^0.6.1"
 
 css-what@^3.2.1:
   version "3.4.2"
   resolved "https://registry.npmmirror.com/css-what/-/css-what-3.4.2.tgz"
   integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==
 
+css-what@2.1:
+  version "2.1.3"
+  resolved "https://registry.npm.taobao.org/css-what/download/css-what-2.1.3.tgz?cache=0&sync_timestamp=1590961613221&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-2.1.3.tgz"
+  integrity sha1-ptdgRXM2X+dGhsPzEcVlE9iChfI=
+
 css@^2.0.0:
   version "2.2.4"
   resolved "https://registry.npm.taobao.org/css/download/css-2.2.4.tgz"
@@ -3932,7 +3843,7 @@ d3-dsv@^1.0.5:
     iconv-lite "0.4"
     rw "1"
 
-d3-ease@1, d3-ease@~1.0.3:
+d3-ease@~1.0.3, d3-ease@1:
   version "1.0.6"
   resolved "https://registry.npm.taobao.org/d3-ease/download/d3-ease-1.0.6.tgz"
   integrity sha1-69ttoi36wKIiIvLU2gb2bEFqDsA=
@@ -3951,20 +3862,20 @@ d3-geo-projection@~2.1.2:
     d3-array "1"
     d3-geo "^1.1.0"
 
-d3-geo@^1.1.0, d3-geo@^1.11.9:
-  version "1.12.1"
-  resolved "https://registry.npm.taobao.org/d3-geo/download/d3-geo-1.12.1.tgz"
-  integrity sha1-f8KrdBS3Lln7y9YD6A2a3AKbA18=
-  dependencies:
-    d3-array "1"
-
-d3-geo@~1.6.4:
+d3-geo@^1.1.0, d3-geo@~1.6.4:
   version "1.6.4"
   resolved "https://registry.npm.taobao.org/d3-geo/download/d3-geo-1.6.4.tgz"
   integrity sha1-8g4eRhyxhF9ai+Vatvh2VCp+MZk=
   dependencies:
     d3-array "1"
 
+d3-geo@^1.11.9:
+  version "1.12.1"
+  resolved "https://registry.npm.taobao.org/d3-geo/download/d3-geo-1.12.1.tgz"
+  integrity sha1-f8KrdBS3Lln7y9YD6A2a3AKbA18=
+  dependencies:
+    d3-array "1"
+
 d3-hexjson@^1.0.1:
   version "1.1.0"
   resolved "https://registry.npm.taobao.org/d3-hexjson/download/d3-hexjson-1.1.0.tgz"
@@ -3977,21 +3888,14 @@ d3-hierarchy@^1.1.5:
   resolved "https://registry.npm.taobao.org/d3-hierarchy/download/d3-hierarchy-1.1.9.tgz"
   integrity sha1-L2vuJMqupD+Nw3VF+gFihVlkeoM=
 
-d3-interpolate@1:
-  version "1.4.0"
-  resolved "https://registry.npm.taobao.org/d3-interpolate/download/d3-interpolate-1.4.0.tgz"
-  integrity sha1-Um554tgNqjg/ngwcHH3MDwWD6Yc=
-  dependencies:
-    d3-color "1"
-
-d3-interpolate@~1.1.5:
+d3-interpolate@~1.1.5, d3-interpolate@1:
   version "1.1.6"
   resolved "https://registry.npm.taobao.org/d3-interpolate/download/d3-interpolate-1.1.6.tgz"
   integrity sha1-LPOVriOBgE3wiqG/dmt/l7X2j7Y=
   dependencies:
     d3-color "1"
 
-d3-path@1, d3-path@^1.0.9:
+d3-path@^1.0.9, d3-path@1:
   version "1.0.9"
   resolved "https://registry.npm.taobao.org/d3-path/download/d3-path-1.0.9.tgz"
   integrity sha1-SMBQux/owmJJOoyvVSTj6VkXAc8=
@@ -4017,7 +3921,7 @@ d3-shape@^1.2.0:
   dependencies:
     d3-path "1"
 
-d3-timer@1, d3-timer@~1.0.6:
+d3-timer@~1.0.6, d3-timer@1:
   version "1.0.10"
   resolved "https://registry.npm.taobao.org/d3-timer/download/d3-timer-1.0.10.tgz?cache=0&sync_timestamp=1573938297645&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fd3-timer%2Fdownload%2Fd3-timer-1.0.10.tgz"
   integrity sha1-3+dripF0iDGxO22ceT/71QjdneU=
@@ -4064,21 +3968,28 @@ de-indent@^1.0.2:
   resolved "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz"
   integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=
 
-debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
+debug@^2.2.0:
   version "2.6.9"
   resolved "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz"
   integrity sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=
   dependencies:
     ms "2.0.0"
 
-debug@=3.1.0, debug@~3.1.0:
-  version "3.1.0"
-  resolved "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz"
-  integrity sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=
+debug@^2.3.3:
+  version "2.6.9"
+  resolved "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz"
+  integrity sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=
   dependencies:
     ms "2.0.0"
 
-debug@^3.0.0, debug@^3.1.1:
+debug@^2.6.9:
+  version "2.6.9"
+  resolved "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz"
+  integrity sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=
+  dependencies:
+    ms "2.0.0"
+
+debug@^3.1.1:
   version "3.2.6"
   resolved "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz"
   integrity sha1-6D0X3hbYp++3cX7b5fsQE17uYps=
@@ -4099,6 +4010,27 @@ debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
   dependencies:
     ms "^2.1.1"
 
+debug@=3.1.0:
+  version "3.1.0"
+  resolved "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz"
+  integrity sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=
+  dependencies:
+    ms "2.0.0"
+
+debug@~3.1.0:
+  version "3.1.0"
+  resolved "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz"
+  integrity sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=
+  dependencies:
+    ms "2.0.0"
+
+debug@2.6.9:
+  version "2.6.9"
+  resolved "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz"
+  integrity sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=
+  dependencies:
+    ms "2.0.0"
+
 decamelize@^1.0.0, decamelize@^1.2.0:
   version "1.2.0"
   resolved "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz"
@@ -4145,7 +4077,12 @@ deep-is@~0.1.3:
   resolved "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz"
   integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
 
-deepmerge@^1.2.0, deepmerge@^1.5.2:
+deepmerge@^1.2.0:
+  version "1.5.2"
+  resolved "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz"
+  integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==
+
+deepmerge@^1.5.2:
   version "1.5.2"
   resolved "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz"
   integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==
@@ -4187,14 +4124,7 @@ defer-to-connect@^2.0.0:
   resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz"
   integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==
 
-define-properties@^1.1.2, define-properties@^1.1.3:
-  version "1.1.3"
-  resolved "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz"
-  integrity sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=
-  dependencies:
-    object-keys "^1.0.12"
-
-define-properties@^1.1.4:
+define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4:
   version "1.1.4"
   resolved "https://registry.npmmirror.com/define-properties/-/define-properties-1.1.4.tgz"
   integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==
@@ -4383,7 +4313,7 @@ domain-browser@^1.1.1:
   resolved "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz"
   integrity sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=
 
-domelementtype@1, domelementtype@^1.3.1:
+domelementtype@^1.3.1, domelementtype@1:
   version "1.3.1"
   resolved "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz"
   integrity sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=
@@ -4400,7 +4330,7 @@ domhandler@^2.3.0:
   dependencies:
     domelementtype "1"
 
-domutils@1.5.1:
+domutils@^1.5.1, domutils@1.5.1:
   version "1.5.1"
   resolved "https://registry.npm.taobao.org/domutils/download/domutils-1.5.1.tgz?cache=0&sync_timestamp=1589052559692&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.5.1.tgz"
   integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=
@@ -4408,7 +4338,7 @@ domutils@1.5.1:
     dom-serializer "0"
     domelementtype "1"
 
-domutils@^1.5.1, domutils@^1.7.0:
+domutils@^1.7.0:
   version "1.7.0"
   resolved "https://registry.npm.taobao.org/domutils/download/domutils-1.7.0.tgz?cache=0&sync_timestamp=1589052559692&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz"
   integrity sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=
@@ -4440,16 +4370,16 @@ dotignore@~0.1.2:
   dependencies:
     minimatch "^3.0.4"
 
-duplexer3@^0.1.4:
-  version "0.1.4"
-  resolved "https://registry.npm.taobao.org/duplexer3/download/duplexer3-0.1.4.tgz"
-  integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
-
 duplexer@^0.1.1:
   version "0.1.1"
   resolved "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.1.tgz"
   integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=
 
+duplexer3@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.npm.taobao.org/duplexer3/download/duplexer3-0.1.4.tgz"
+  integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
+
 duplexify@^3.4.2, duplexify@^3.6.0:
   version "3.7.1"
   resolved "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz"
@@ -4491,10 +4421,10 @@ ejs@^2.6.1:
   resolved "https://registry.npm.taobao.org/ejs/download/ejs-2.7.4.tgz"
   integrity sha1-SGYSh1c9zFPjZsehrlLDoSDuybo=
 
-electron-to-chromium@^1.4.668:
-  version "1.4.690"
-  resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.690.tgz"
-  integrity sha512-+2OAGjUx68xElQhydpcbqH50hE8Vs2K6TkAeLhICYfndb67CVH0UsZaijmRUE3rHlIxU1u0jxwhgVe6fK3YANA==
+electron-to-chromium@^1.4.251:
+  version "1.4.284"
+  resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz"
+  integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==
 
 element-china-area-data@^5.0.2:
   version "5.0.2"
@@ -4580,7 +4510,7 @@ enquire.js@^2.1.6:
   resolved "https://registry.npm.taobao.org/enquire.js/download/enquire.js-2.1.6.tgz"
   integrity sha1-PoeAybi4NQhMP2DhZtvDwqPImBQ=
 
-entities@^1.1.1, entities@~1.1.1:
+entities@^1.1.1:
   version "1.1.2"
   resolved "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz"
   integrity sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=
@@ -4590,6 +4520,11 @@ entities@^2.0.0:
   resolved "https://registry.npm.taobao.org/entities/download/entities-2.0.3.tgz"
   integrity sha1-XEh+V0Krk8Fau12iJ1m4WQ7AO38=
 
+entities@~1.1.1:
+  version "1.1.2"
+  resolved "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz"
+  integrity sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=
+
 envify@^4.0.0:
   version "4.1.0"
   resolved "https://registry.npmmirror.com/envify/-/envify-4.1.0.tgz"
@@ -4624,7 +4559,7 @@ error-stack-parser@^2.0.0:
   dependencies:
     stackframe "^1.1.1"
 
-es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.1:
+es-abstract@^1.17.0-next.1, es-abstract@^1.17.5, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.5:
   version "1.20.1"
   resolved "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.20.1.tgz"
   integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==
@@ -4653,11 +4588,6 @@ es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5, es-abstrac
     string.prototype.trimstart "^1.0.5"
     unbox-primitive "^1.0.2"
 
-es-array-method-boxes-properly@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.npmmirror.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz"
-  integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==
-
 es-to-primitive@^1.2.1:
   version "1.2.1"
   resolved "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz"
@@ -4672,92 +4602,12 @@ es6-promise@^4.1.0:
   resolved "https://registry.npm.taobao.org/es6-promise/download/es6-promise-4.2.8.tgz"
   integrity sha1-TrIVlMlyvEBVPSduUQU5FD21Pgo=
 
-esbuild-android-arm64@0.14.7:
-  version "0.14.7"
-  resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.7.tgz#8c78cbb617f9f216abfb5a84cca453b51421a1b6"
-  integrity sha512-9/Q1NC4JErvsXzJKti0NHt+vzKjZOgPIjX/e6kkuCzgfT/GcO3FVBcGIv4HeJG7oMznE6KyKhvLrFgt7CdU2/w==
-
-esbuild-darwin-64@0.14.7:
-  version "0.14.7"
-  resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.7.tgz#7424bdb64c104556d36b7429af79ab51415ab8f4"
-  integrity sha512-Z9X+3TT/Xj+JiZTVlwHj2P+8GoiSmUnGVz0YZTSt8WTbW3UKw5Pw2ucuJ8VzbD2FPy0jbIKJkko/6CMTQchShQ==
-
-esbuild-darwin-arm64@0.14.7:
-  version "0.14.7"
-  resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.7.tgz#6a243dc0132aeb11c1991f968a6a9e393f43c6bc"
-  integrity sha512-68e7COhmwIiLXBEyxUxZSSU0akgv8t3e50e2QOtKdBUE0F6KIRISzFntLe2rYlNqSsjGWsIO6CCc9tQxijjSkw==
-
-esbuild-freebsd-64@0.14.7:
-  version "0.14.7"
-  resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.7.tgz#e7281e50522e724c4da502504dcd75be0db46c94"
-  integrity sha512-76zy5jAjPiXX/S3UvRgG85Bb0wy0zv/J2lel3KtHi4V7GUTBfhNUPt0E5bpSXJ6yMT7iThhnA5rOn+IJiUcslQ==
-
-esbuild-freebsd-arm64@0.14.7:
-  version "0.14.7"
-  resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.7.tgz#31e513098efd181d76a3ba3ea285836d37f018a3"
-  integrity sha512-lSlYNLiqyzd7qCN5CEOmLxn7MhnGHPcu5KuUYOG1i+t5A6q7LgBmfYC9ZHJBoYyow3u4CNu79AWHbvVLpE/VQQ==
-
-esbuild-linux-32@0.14.7:
-  version "0.14.7"
-  resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.7.tgz#82cf96accbf55d3007c3338dc3b3144efa9ae108"
-  integrity sha512-Vk28u409wVOXqTaT6ek0TnfQG4Ty1aWWfiysIaIRERkNLhzLhUf4i+qJBN8mMuGTYOkE40F0Wkbp6m+IidOp2A==
-
-esbuild-linux-64@0.14.7:
-  version "0.14.7"
-  resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.7.tgz#67bdfe23a6ca918a0bb8e9558a3ee0fdf98c0bc0"
-  integrity sha512-+Lvz6x+8OkRk3K2RtZwO+0a92jy9si9cUea5Zoru4yJ/6EQm9ENX5seZE0X9DTwk1dxJbjmLsJsd3IoowyzgVg==
-
-esbuild-linux-arm64@0.14.7:
-  version "0.14.7"
-  resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.7.tgz#f79c69ff0c176559c418de8e59aa3cf388fff992"
-  integrity sha512-kJd5beWSqteSAW086qzCEsH6uwpi7QRIpzYWHzEYwKKu9DiG1TwIBegQJmLpPsLp4v5RAFjea0JAmAtpGtRpqg==
-
-esbuild-linux-arm@0.14.7:
-  version "0.14.7"
-  resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.7.tgz#3d665b35e1c27dbe1c9deb8bf956d7d1f191a21b"
-  integrity sha512-OzpXEBogbYdcBqE4uKynuSn5YSetCvK03Qv1HcOY1VN6HmReuatjJ21dCH+YPHSpMEF0afVCnNfffvsGEkxGJQ==
-
-esbuild-linux-mips64le@0.14.7:
-  version "0.14.7"
-  resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.7.tgz#226114a0cc6649ba0ffd3428118a8f622872f16d"
-  integrity sha512-mFWpnDhZJmj/h7pxqn1GGDsKwRfqtV7fx6kTF5pr4PfXe8pIaTERpwcKkoCwZUkWAOmUEjMIUAvFM72A6hMZnA==
-
-esbuild-linux-ppc64le@0.14.7:
-  version "0.14.7"
-  resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.7.tgz#5c67ae56517f2644d567b2ca5ecb97f9520cfc49"
-  integrity sha512-wM7f4M0bsQXfDL4JbbYD0wsr8cC8KaQ3RPWc/fV27KdErPW7YsqshZZSjDV0kbhzwpNNdhLItfbaRT8OE8OaKA==
-
-esbuild-netbsd-64@0.14.7:
-  version "0.14.7"
-  resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.7.tgz#69dc0469ea089013956d8c6aa71c9e7fc25fc567"
-  integrity sha512-J/afS7woKyzGgAL5FlgvMyqgt5wQ597lgsT+xc2yJ9/7BIyezeXutXqfh05vszy2k3kSvhLesugsxIA71WsqBw==
-
-esbuild-openbsd-64@0.14.7:
-  version "0.14.7"
-  resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.7.tgz#3a9d04ecf820708e2e5b7d26fa7332e3f19f6b6c"
-  integrity sha512-7CcxgdlCD+zAPyveKoznbgr3i0Wnh0L8BDGRCjE/5UGkm5P/NQko51tuIDaYof8zbmXjjl0OIt9lSo4W7I8mrw==
-
-esbuild-sunos-64@0.14.7:
-  version "0.14.7"
-  resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.7.tgz#7c33a682f0fd9565cae7df165d0e8736b7b62623"
-  integrity sha512-GKCafP2j/KUljVC3nesw1wLFSZktb2FGCmoT1+730zIF5O6hNroo0bSEofm6ZK5mNPnLiSaiLyRB9YFgtkd5Xg==
-
-esbuild-windows-32@0.14.7:
-  version "0.14.7"
-  resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.7.tgz#24ec706a5f25b4499048f56146bcff0ed3839dce"
-  integrity sha512-5I1GeL/gZoUUdTPA0ws54bpYdtyeA2t6MNISalsHpY269zK8Jia/AXB3ta/KcDHv2SvNwabpImeIPXC/k0YW6A==
-
 esbuild-windows-64@0.14.7:
   version "0.14.7"
   resolved "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.7.tgz"
   integrity sha512-CIGKCFpQOSlYsLMbxt8JjxxvVw9MlF1Rz2ABLVfFyHUF5OeqHD5fPhGrCVNaVrhO8Xrm+yFmtjcZudUGr5/WYQ==
 
-esbuild-windows-arm64@0.14.7:
-  version "0.14.7"
-  resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.7.tgz#ecfd9ac289606f26760c4f737caaeeadfff3cfe3"
-  integrity sha512-eOs1eSivOqN7cFiRIukEruWhaCf75V0N8P0zP7dh44LIhLl8y6/z++vv9qQVbkBm5/D7M7LfCfCTmt1f1wHOCw==
-
-esbuild@0.14.7:
+esbuild@>=0.13, esbuild@0.14.7:
   version "0.14.7"
   resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.7.tgz"
   integrity sha512-+u/msd6iu+HvfysUPkZ9VHm83LImmSNnecYPfFI01pQ7TTcsFR+V0BkybZX7mPtIaI7LCrse6YRj+v3eraJSgw==
@@ -4848,7 +4698,7 @@ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
   resolved "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.2.0.tgz?cache=0&sync_timestamp=1591268823690&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.2.0.tgz"
   integrity sha1-dEFayISHRJX3jsKpc0lSU0TJgfo=
 
-eslint@^6.7.2:
+"eslint@^5.0.0 || ^6.0.0", eslint@^6.7.2, "eslint@>= 1.6.0", "eslint@>= 4.12.1", "eslint@>=1.6.0 <7.0.0", eslint@>=5.0.0:
   version "6.8.0"
   resolved "https://registry.npmmirror.com/eslint/-/eslint-6.8.0.tgz"
   integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==
@@ -4947,7 +4797,7 @@ event-pubsub@4.3.0:
 eventemitter3@^2.0.3:
   version "2.0.3"
   resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz"
-  integrity sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=
+  integrity sha1-teEHm1n7XhuidxwKmTvgYKWMmbo= sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==
 
 eventemitter3@^4.0.0:
   version "4.0.4"
@@ -5118,16 +4968,11 @@ extglob@^2.0.4:
     snapdragon "^0.8.1"
     to-regex "^3.0.1"
 
-extsprintf@1.3.0:
+extsprintf@^1.2.0, extsprintf@1.3.0:
   version "1.3.0"
   resolved "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz"
   integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
 
-extsprintf@^1.2.0:
-  version "1.4.0"
-  resolved "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.4.0.tgz"
-  integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
-
 fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
   version "3.1.3"
   resolved "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599697571&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz"
@@ -5191,6 +5036,14 @@ file-entry-cache@^5.0.1:
   dependencies:
     flat-cache "^2.0.1"
 
+file-loader@*, file-loader@^4.2.0:
+  version "4.3.0"
+  resolved "https://registry.npm.taobao.org/file-loader/download/file-loader-4.3.0.tgz"
+  integrity sha1-eA8ED3KbPRgBnyBgX3I+hEuKWK8=
+  dependencies:
+    loader-utils "^1.2.3"
+    schema-utils "^2.5.0"
+
 file-loader@^3.0.1:
   version "3.0.1"
   resolved "https://registry.npm.taobao.org/file-loader/download/file-loader-3.0.1.tgz"
@@ -5199,14 +5052,6 @@ file-loader@^3.0.1:
     loader-utils "^1.0.2"
     schema-utils "^1.0.0"
 
-file-loader@^4.2.0:
-  version "4.3.0"
-  resolved "https://registry.npm.taobao.org/file-loader/download/file-loader-4.3.0.tgz"
-  integrity sha1-eA8ED3KbPRgBnyBgX3I+hEuKWK8=
-  dependencies:
-    loader-utils "^1.2.3"
-    schema-utils "^2.5.0"
-
 file-saver@^1.3.3:
   version "1.3.8"
   resolved "https://registry.npmmirror.com/file-saver/-/file-saver-1.3.8.tgz"
@@ -5217,11 +5062,6 @@ file-saver@^2.0.5:
   resolved "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz"
   integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==
 
-file-uri-to-path@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
-  integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
-
 filename-reserved-regex@^2.0.0:
   version "2.0.0"
   resolved "https://registry.npmmirror.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz"
@@ -5363,20 +5203,13 @@ fmin@0.0.2:
     tape "^4.5.1"
     uglify-js "^2.6.2"
 
-follow-redirects@1.5.10:
+follow-redirects@^1.0.0, follow-redirects@1.5.10:
   version "1.5.10"
   resolved "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.5.10.tgz?cache=0&sync_timestamp=1585479417937&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.5.10.tgz"
   integrity sha1-e3qfmuov3/NnhqlP9kPtB/T/Xio=
   dependencies:
     debug "=3.1.0"
 
-follow-redirects@^1.0.0:
-  version "1.11.0"
-  resolved "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.11.0.tgz?cache=0&sync_timestamp=1585479417937&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.11.0.tgz"
-  integrity sha1-r6FPCLoSpSljFA/kMhJliJe8Dss=
-  dependencies:
-    debug "^3.0.0"
-
 for-each@~0.3.3:
   version "0.3.3"
   resolved "https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz"
@@ -5471,19 +5304,6 @@ fs.realpath@^1.0.0:
   resolved "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz"
   integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
 
-fsevents@^1.2.7:
-  version "1.2.13"
-  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38"
-  integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==
-  dependencies:
-    bindings "^1.5.0"
-    nan "^2.12.1"
-
-fsevents@~2.3.2:
-  version "2.3.3"
-  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
-  integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
-
 function-bind@^1.1.1:
   version "1.1.1"
   resolved "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz"
@@ -5540,7 +5360,14 @@ get-stream@^4.0.0, get-stream@^4.1.0:
   dependencies:
     pump "^3.0.0"
 
-get-stream@^5.0.0, get-stream@^5.1.0:
+get-stream@^5.0.0:
+  version "5.1.0"
+  resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-5.1.0.tgz"
+  integrity sha1-ASA83JJZf5uQkGfD5lbMH008Tck=
+  dependencies:
+    pump "^3.0.0"
+
+get-stream@^5.1.0:
   version "5.1.0"
   resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-5.1.0.tgz"
   integrity sha1-ASA83JJZf5uQkGfD5lbMH008Tck=
@@ -5588,7 +5415,14 @@ glob-parent@^3.1.0:
     is-glob "^3.1.0"
     path-dirname "^1.0.0"
 
-glob-parent@^5.0.0, glob-parent@~5.1.2:
+glob-parent@^5.0.0:
+  version "5.1.2"
+  resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz"
+  integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+  dependencies:
+    is-glob "^4.0.1"
+
+glob-parent@~5.1.2:
   version "5.1.2"
   resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz"
   integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
@@ -5600,19 +5434,7 @@ glob-to-regexp@^0.3.0:
   resolved "https://registry.npm.taobao.org/glob-to-regexp/download/glob-to-regexp-0.3.0.tgz"
   integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=
 
-glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
-  version "7.1.6"
-  resolved "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz"
-  integrity sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=
-  dependencies:
-    fs.realpath "^1.0.0"
-    inflight "^1.0.4"
-    inherits "2"
-    minimatch "^3.0.4"
-    once "^1.3.0"
-    path-is-absolute "^1.0.0"
-
-glob@~7.2.0:
+glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.2.0:
   version "7.2.3"
   resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz"
   integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
@@ -5691,27 +5513,10 @@ globby@^9.2.0:
 good-listener@^1.2.2:
   version "1.2.2"
   resolved "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz"
-  integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=
+  integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==
   dependencies:
     delegate "^3.1.2"
 
-"got@>=8.0 <12.0":
-  version "11.8.2"
-  resolved "https://registry.npmjs.org/got/-/got-11.8.2.tgz"
-  integrity sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==
-  dependencies:
-    "@sindresorhus/is" "^4.0.0"
-    "@szmarczak/http-timer" "^4.0.5"
-    "@types/cacheable-request" "^6.0.1"
-    "@types/responselike" "^1.0.0"
-    cacheable-lookup "^5.0.3"
-    cacheable-request "^7.0.1"
-    decompress-response "^6.0.0"
-    http2-wrapper "^1.0.0-beta.5.2"
-    lowercase-keys "^2.0.0"
-    p-cancelable "^2.0.0"
-    responselike "^2.0.0"
-
 got@^9.6.0:
   version "9.6.0"
   resolved "https://registry.npm.taobao.org/got/download/got-9.6.0.tgz?cache=0&sync_timestamp=1591374398174&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgot%2Fdownload%2Fgot-9.6.0.tgz"
@@ -5729,6 +5534,23 @@ got@^9.6.0:
     to-readable-stream "^1.0.0"
     url-parse-lax "^3.0.0"
 
+"got@>=8.0 <12.0":
+  version "11.8.2"
+  resolved "https://registry.npmjs.org/got/-/got-11.8.2.tgz"
+  integrity sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==
+  dependencies:
+    "@sindresorhus/is" "^4.0.0"
+    "@szmarczak/http-timer" "^4.0.5"
+    "@types/cacheable-request" "^6.0.1"
+    "@types/responselike" "^1.0.0"
+    cacheable-lookup "^5.0.3"
+    cacheable-request "^7.0.1"
+    decompress-response "^6.0.0"
+    http2-wrapper "^1.0.0-beta.5.2"
+    lowercase-keys "^2.0.0"
+    p-cancelable "^2.0.0"
+    responselike "^2.0.0"
+
 graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
   version "4.2.4"
   resolved "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.4.tgz"
@@ -5806,7 +5628,7 @@ has-property-descriptors@^1.0.0:
   dependencies:
     get-intrinsic "^1.1.1"
 
-has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3:
+has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3:
   version "1.0.3"
   resolved "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz"
   integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
@@ -5888,7 +5710,7 @@ hash.js@^1.0.0, hash.js@^1.0.3:
     inherits "^2.0.3"
     minimalistic-assert "^1.0.1"
 
-he@1.2.x, he@^1.1.0:
+he@^1.1.0, he@1.2.x:
   version "1.2.0"
   resolved "https://registry.npmmirror.com/he/-/he-1.2.0.tgz"
   integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
@@ -5911,7 +5733,7 @@ highlight.js@^9.7.0:
 hmac-drbg@^1.0.0:
   version "1.0.1"
   resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz"
-  integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
+  integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==
   dependencies:
     hash.js "^1.0.3"
     minimalistic-assert "^1.0.0"
@@ -5983,7 +5805,7 @@ html-tags@^2.0.0:
   resolved "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz"
   integrity sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=
 
-html-webpack-plugin@^3.2.0:
+html-webpack-plugin@^3.2.0, html-webpack-plugin@>=2.26.0:
   version "3.2.0"
   resolved "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz?cache=0&sync_timestamp=1588268411154&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz"
   integrity sha1-sBq71yOsqqeze2r0SS69oD2d03s=
@@ -6026,17 +5848,6 @@ http-deceiver@^1.2.7:
   resolved "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz"
   integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=
 
-http-errors@1.7.2:
-  version "1.7.2"
-  resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz"
-  integrity sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=
-  dependencies:
-    depd "~1.1.2"
-    inherits "2.0.3"
-    setprototypeof "1.1.1"
-    statuses ">= 1.5.0 < 2"
-    toidentifier "1.0.0"
-
 http-errors@~1.6.2:
   version "1.6.3"
   resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz"
@@ -6047,13 +5858,13 @@ http-errors@~1.6.2:
     setprototypeof "1.1.0"
     statuses ">= 1.4.0 < 2"
 
-http-errors@~1.7.2:
-  version "1.7.3"
-  resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.3.tgz"
-  integrity sha1-bGGeT5xgMIw4UZSYwU+7EKrOuwY=
+http-errors@~1.7.2, http-errors@1.7.2:
+  version "1.7.2"
+  resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz"
+  integrity sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=
   dependencies:
     depd "~1.1.2"
-    inherits "2.0.4"
+    inherits "2.0.3"
     setprototypeof "1.1.1"
     statuses ">= 1.5.0 < 2"
     toidentifier "1.0.0"
@@ -6063,16 +5874,6 @@ http-parser-js@>=0.5.1:
   resolved "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.5.2.tgz?cache=0&sync_timestamp=1572714277347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-parser-js%2Fdownload%2Fhttp-parser-js-0.5.2.tgz"
   integrity sha1-2i4x0jezk6rnKs5DiC3X4nCo/3c=
 
-http-proxy-middleware@0.19.1:
-  version "0.19.1"
-  resolved "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz?cache=0&sync_timestamp=1589915518285&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz"
-  integrity sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=
-  dependencies:
-    http-proxy "^1.17.0"
-    is-glob "^4.0.0"
-    lodash "^4.17.11"
-    micromatch "^3.1.10"
-
 http-proxy-middleware@^1.0.0:
   version "1.3.1"
   resolved "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz"
@@ -6084,6 +5885,16 @@ http-proxy-middleware@^1.0.0:
     is-plain-obj "^3.0.0"
     micromatch "^4.0.2"
 
+http-proxy-middleware@0.19.1:
+  version "0.19.1"
+  resolved "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz?cache=0&sync_timestamp=1589915518285&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz"
+  integrity sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=
+  dependencies:
+    http-proxy "^1.17.0"
+    is-glob "^4.0.0"
+    lodash "^4.17.11"
+    micromatch "^3.1.10"
+
 http-proxy@^1.17.0, http-proxy@^1.18.1:
   version "1.18.1"
   resolved "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.1.tgz"
@@ -6120,7 +5931,7 @@ human-signals@^1.1.1:
   resolved "https://registry.npm.taobao.org/human-signals/download/human-signals-1.1.1.tgz?cache=0&sync_timestamp=1584198662293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhuman-signals%2Fdownload%2Fhuman-signals-1.1.1.tgz"
   integrity sha1-xbHNFPUK6uCatsWf5jujOV/k36M=
 
-iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.24:
+iconv-lite@^0.4.24, iconv-lite@0.4, iconv-lite@0.4.24:
   version "0.4.24"
   resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz"
   integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -6235,7 +6046,7 @@ inflight@^1.0.4:
     once "^1.3.0"
     wrappy "1"
 
-inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4:
+inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4, inherits@2:
   version "2.0.4"
   resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz"
   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -6250,16 +6061,11 @@ inherits@2.0.3:
   resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz"
   integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
 
-ini@^1.3.5:
+ini@^1.3.5, ini@~1.3.0:
   version "1.3.5"
   resolved "https://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz"
   integrity sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=
 
-ini@~1.3.0:
-  version "1.3.8"
-  resolved "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz"
-  integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
-
 inquirer@^7.0.0, inquirer@^7.1.0:
   version "7.2.0"
   resolved "https://registry.npm.taobao.org/inquirer/download/inquirer-7.2.0.tgz?cache=0&sync_timestamp=1592184390073&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finquirer%2Fdownload%2Finquirer-7.2.0.tgz"
@@ -6313,17 +6119,12 @@ ip-regex@^2.1.0:
   resolved "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz"
   integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=
 
-ip@^1.1.0:
-  version "1.1.8"
-  resolved "https://registry.npmmirror.com/ip/-/ip-1.1.8.tgz"
-  integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==
-
-ip@^1.1.5:
+ip@^1.1.0, ip@^1.1.5:
   version "1.1.5"
   resolved "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz"
   integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=
 
-ipaddr.js@1.9.1, ipaddr.js@^1.9.0:
+ipaddr.js@^1.9.0, ipaddr.js@1.9.1:
   version "1.9.1"
   resolved "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz"
   integrity sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=
@@ -6401,16 +6202,11 @@ is-buffer@^1.1.5:
   resolved "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&sync_timestamp=1588707106955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz"
   integrity sha1-76ouqdqg16suoTqXsritUf776L4=
 
-is-callable@^1.1.3, is-callable@^1.2.4:
+is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4:
   version "1.2.4"
   resolved "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.4.tgz"
   integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==
 
-is-callable@^1.1.4:
-  version "1.2.0"
-  resolved "https://registry.npm.taobao.org/is-callable/download/is-callable-1.2.0.tgz?cache=0&sync_timestamp=1591427614250&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.0.tgz"
-  integrity sha1-gzNlYLVKOONeOi33r9BFTWkUaLs=
-
 is-ci@^1.0.10:
   version "1.2.1"
   resolved "https://registry.npmmirror.com/is-ci/-/is-ci-1.2.1.tgz"
@@ -6496,6 +6292,11 @@ is-extendable@^0.1.0, is-extendable@^0.1.1:
   resolved "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz"
   integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
 
+is-extendable@^0.1.1:
+  version "0.1.1"
+  resolved "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz"
+  integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
+
 is-extendable@^1.0.1:
   version "1.0.1"
   resolved "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz"
@@ -6545,12 +6346,7 @@ is-mobile@^2.2.1:
   resolved "https://registry.npm.taobao.org/is-mobile/download/is-mobile-2.2.1.tgz"
   integrity sha1-EPIyABLEEMwoX+7LE0Br1Ybxsvg=
 
-is-negative-zero@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.0.tgz"
-  integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=
-
-is-negative-zero@^2.0.2:
+is-negative-zero@^2.0.0, is-negative-zero@^2.0.2:
   version "2.0.2"
   resolved "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz"
   integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==
@@ -6630,14 +6426,7 @@ is-promise@^2.1.0:
   resolved "https://registry.npm.taobao.org/is-promise/download/is-promise-2.2.2.tgz"
   integrity sha1-OauVnMv5p3TPB597QMeib3YxNfE=
 
-is-regex@^1.0.4:
-  version "1.1.0"
-  resolved "https://registry.npm.taobao.org/is-regex/download/is-regex-1.1.0.tgz"
-  integrity sha1-7OOOOJ5JDfDcIcrqK9WW+Yf3Z/8=
-  dependencies:
-    has-symbols "^1.0.1"
-
-is-regex@^1.1.4, is-regex@~1.1.4:
+is-regex@^1.0.4, is-regex@^1.1.4, is-regex@~1.1.4:
   version "1.1.4"
   resolved "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz"
   integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
@@ -6681,20 +6470,13 @@ is-svg@^3.0.0:
   dependencies:
     html-comment-regex "^1.1.0"
 
-is-symbol@^1.0.2:
+is-symbol@^1.0.2, is-symbol@^1.0.3:
   version "1.0.3"
   resolved "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz"
   integrity sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=
   dependencies:
     has-symbols "^1.0.1"
 
-is-symbol@^1.0.3:
-  version "1.0.4"
-  resolved "https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz"
-  integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
-  dependencies:
-    has-symbols "^1.0.2"
-
 is-typedarray@^1.0.0, is-typedarray@~1.0.0:
   version "1.0.0"
   resolved "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz"
@@ -6734,7 +6516,7 @@ is-yarn-global@^0.3.0:
   resolved "https://registry.npm.taobao.org/is-yarn-global/download/is-yarn-global-0.3.0.tgz"
   integrity sha1-1QLTOCWQ6jAEiTdGdUyJE5lz4jI=
 
-isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
+isarray@^1.0.0:
   version "1.0.0"
   resolved "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz"
   integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
@@ -6749,6 +6531,16 @@ isarray@~0.0.1:
   resolved "https://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz"
   integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
 
+isarray@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz"
+  integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+
+isarray@1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz"
+  integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+
 isexe@^2.0.0:
   version "2.0.0"
   resolved "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz"
@@ -6945,7 +6737,14 @@ killable@^1.0.1:
   resolved "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz"
   integrity sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=
 
-kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
+kind-of@^3.0.2, kind-of@^3.0.3:
+  version "3.2.2"
+  resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz"
+  integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
+  dependencies:
+    is-buffer "^1.1.5"
+
+kind-of@^3.2.0:
   version "3.2.2"
   resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz"
   integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
@@ -7227,7 +7026,12 @@ lower-case@^1.1.1:
   resolved "https://registry.npmmirror.com/lower-case/-/lower-case-1.1.4.tgz"
   integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==
 
-lowercase-keys@^1.0.0, lowercase-keys@^1.0.1:
+lowercase-keys@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-1.0.1.tgz"
+  integrity sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=
+
+lowercase-keys@^1.0.1:
   version "1.0.1"
   resolved "https://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-1.0.1.tgz"
   integrity sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=
@@ -7237,7 +7041,15 @@ lowercase-keys@^2.0.0:
   resolved "https://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-2.0.0.tgz"
   integrity sha1-JgPni3tLAAbLyi+8yKMgJVislHk=
 
-lru-cache@^4.0.1, lru-cache@^4.1.2:
+lru-cache@^4.0.1:
+  version "4.1.5"
+  resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz"
+  integrity sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=
+  dependencies:
+    pseudomap "^1.0.2"
+    yallist "^2.1.2"
+
+lru-cache@^4.1.2:
   version "4.1.5"
   resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz"
   integrity sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=
@@ -7265,7 +7077,14 @@ make-dir@^2.0.0, make-dir@^2.1.0:
     pify "^4.0.1"
     semver "^5.6.0"
 
-make-dir@^3.0.0, make-dir@^3.0.2:
+make-dir@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz?cache=0&sync_timestamp=1587567572251&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz"
+  integrity sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=
+  dependencies:
+    semver "^6.0.0"
+
+make-dir@^3.0.2:
   version "3.1.0"
   resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz?cache=0&sync_timestamp=1587567572251&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz"
   integrity sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=
@@ -7311,7 +7130,7 @@ markdown-it-table-of-contents@^0.4.0:
   resolved "https://registry.npmmirror.com/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.4.tgz"
   integrity sha512-TAIHTHPwa9+ltKvKPWulm/beozQU41Ab+FIefRaQV1NRnpzwcV9QOe6wXQS5WLivm5Q/nlo0rl6laGkMDZE7Gw==
 
-markdown-it@^8.4.1:
+markdown-it@*, markdown-it@^8.4.1, markdown-it@>=5.0.0:
   version "8.4.2"
   resolved "https://registry.npmmirror.com/markdown-it/-/markdown-it-8.4.2.tgz"
   integrity sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==
@@ -7429,7 +7248,7 @@ miller-rabin@^4.0.0:
     bn.js "^4.0.0"
     brorand "^1.0.1"
 
-mime-db@1.44.0, "mime-db@>= 1.43.0 < 2":
+"mime-db@>= 1.43.0 < 2", mime-db@1.44.0:
   version "1.44.0"
   resolved "https://registry.npm.taobao.org/mime-db/download/mime-db-1.44.0.tgz?cache=0&sync_timestamp=1587603342053&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz"
   integrity sha1-+hHF6wrKEzS0Izy01S8QxaYnL5I=
@@ -7441,12 +7260,17 @@ mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24:
   dependencies:
     mime-db "1.44.0"
 
-mime@1.6.0, mime@^1.4.1:
+mime@^1.4.1, mime@1.6.0:
   version "1.6.0"
   resolved "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz"
   integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
 
-mime@^2.0.3, mime@^2.4.4:
+mime@^2.0.3:
+  version "2.6.0"
+  resolved "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz"
+  integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
+
+mime@^2.4.4:
   version "2.6.0"
   resolved "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz"
   integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
@@ -7478,16 +7302,6 @@ min-document@^2.19.0:
   dependencies:
     dom-walk "^0.1.0"
 
-mini-css-extract-plugin@0.6.0:
-  version "0.6.0"
-  resolved "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.6.0.tgz?cache=0&sync_timestamp=1576856499989&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.6.0.tgz"
-  integrity sha1-o/Ezctb83pEvPuTNA5ZlcEgB47k=
-  dependencies:
-    loader-utils "^1.1.0"
-    normalize-url "^2.0.1"
-    schema-utils "^1.0.0"
-    webpack-sources "^1.1.0"
-
 mini-css-extract-plugin@^0.9.0:
   version "0.9.0"
   resolved "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.9.0.tgz?cache=0&sync_timestamp=1576856499989&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.9.0.tgz"
@@ -7498,6 +7312,16 @@ mini-css-extract-plugin@^0.9.0:
     schema-utils "^1.0.0"
     webpack-sources "^1.1.0"
 
+mini-css-extract-plugin@0.6.0:
+  version "0.6.0"
+  resolved "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.6.0.tgz?cache=0&sync_timestamp=1576856499989&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.6.0.tgz"
+  integrity sha1-o/Ezctb83pEvPuTNA5ZlcEgB47k=
+  dependencies:
+    loader-utils "^1.1.0"
+    normalize-url "^2.0.1"
+    schema-utils "^1.0.0"
+    webpack-sources "^1.1.0"
+
 minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
   version "1.0.1"
   resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"
@@ -7506,28 +7330,16 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
 minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
   version "1.0.1"
   resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz"
-  integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
-
-minimatch@^3.0.4:
-  version "3.0.4"
-  resolved "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz"
-  integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=
-  dependencies:
-    brace-expansion "^1.1.7"
+  integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==
 
-minimatch@^3.1.1:
+minimatch@^3.0.4, minimatch@^3.1.1:
   version "3.1.2"
   resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz"
   integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
   dependencies:
     brace-expansion "^1.1.7"
 
-minimist@^1.2.0, minimist@^1.2.5:
-  version "1.2.5"
-  resolved "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz"
-  integrity sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=
-
-minimist@^1.2.6, minimist@~1.2.6:
+minimist@^1.2.0, minimist@^1.2.5, minimist@~1.2.6:
   version "1.2.6"
   resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.6.tgz"
   integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
@@ -7563,30 +7375,23 @@ mixin-deep@^1.2.0:
     for-in "^1.0.2"
     is-extendable "^1.0.1"
 
-mkdirp@0.3.0:
-  version "0.3.0"
-  resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.3.0.tgz"
-  integrity sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==
-
-mkdirp@^0.5.1, mkdirp@^0.5.3:
+mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1:
   version "0.5.5"
   resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.5.tgz"
   integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
   dependencies:
-    minimist "^1.2.5"
-
-mkdirp@~0.5.1:
-  version "0.5.6"
-  resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz"
-  integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
-  dependencies:
-    minimist "^1.2.6"
+    minimist "^1.2.5"
 
 mkdirp@~1.0.4:
   version "1.0.4"
   resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz"
   integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
 
+mkdirp@0.3.0:
+  version "0.3.0"
+  resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.3.0.tgz"
+  integrity sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==
+
 mockjs@^1.1.0:
   version "1.1.0"
   resolved "https://registry.npmmirror.com/mockjs/-/mockjs-1.1.0.tgz"
@@ -7594,12 +7399,7 @@ mockjs@^1.1.0:
   dependencies:
     commander "*"
 
-moment@^2.21.0:
-  version "2.26.0"
-  resolved "https://registry.npm.taobao.org/moment/download/moment-2.26.0.tgz"
-  integrity sha1-Xh+Cxrr8pug+gIswyHBe7Q3L05o=
-
-moment@^2.24.0:
+moment@^2.21.0, moment@^2.24.0:
   version "2.24.0"
   resolved "https://registry.npmmirror.com/moment/-/moment-2.24.0.tgz"
   integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==
@@ -7616,6 +7416,11 @@ move-concurrently@^1.0.1:
     rimraf "^2.5.4"
     run-queue "^1.0.3"
 
+ms@^2.1.1:
+  version "2.1.2"
+  resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz"
+  integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=
+
 ms@2.0.0:
   version "2.0.0"
   resolved "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz"
@@ -7626,11 +7431,6 @@ ms@2.1.1:
   resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz"
   integrity sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=
 
-ms@^2.1.1:
-  version "2.1.2"
-  resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz"
-  integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=
-
 multicast-dns-service-types@^1.1.0:
   version "1.1.0"
   resolved "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz"
@@ -7663,11 +7463,6 @@ mz@^2.4.0:
     object-assign "^4.0.1"
     thenify-all "^1.0.0"
 
-nan@^2.12.1:
-  version "2.19.0"
-  resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0"
-  integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==
-
 nanoid@^4.0.0:
   version "4.0.0"
   resolved "https://registry.npmmirror.com/nanoid/-/nanoid-4.0.0.tgz"
@@ -7777,10 +7572,10 @@ node-libs-browser@^2.2.1:
     util "^0.11.0"
     vm-browserify "^1.0.1"
 
-node-releases@^2.0.14:
-  version "2.0.14"
-  resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz"
-  integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
+node-releases@^2.0.6:
+  version "2.0.8"
+  resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.8.tgz"
+  integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==
 
 nopt@1.0.10:
   version "1.0.10"
@@ -7821,16 +7616,6 @@ normalize-range@^0.1.2:
   resolved "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz"
   integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
 
-normalize-url@1.9.1:
-  version "1.9.1"
-  resolved "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz"
-  integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=
-  dependencies:
-    object-assign "^4.0.1"
-    prepend-http "^1.0.0"
-    query-string "^4.1.0"
-    sort-keys "^1.0.0"
-
 normalize-url@^2.0.1:
   version "2.0.1"
   resolved "https://registry.npm.taobao.org/normalize-url/download/normalize-url-2.0.1.tgz"
@@ -7855,6 +7640,16 @@ normalize-url@^6.0.1:
   resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz"
   integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
 
+normalize-url@1.9.1:
+  version "1.9.1"
+  resolved "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz"
+  integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=
+  dependencies:
+    object-assign "^4.0.1"
+    prepend-http "^1.0.0"
+    query-string "^4.1.0"
+    sort-keys "^1.0.0"
+
 normalize-wheel@^1.0.1:
   version "1.0.1"
   resolved "https://registry.npmmirror.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz"
@@ -7896,7 +7691,7 @@ oauth-sign@~0.9.0:
   resolved "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz"
   integrity sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=
 
-object-assign@4.x, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
+object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1, object-assign@4.x:
   version "4.1.1"
   resolved "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz?cache=0&sync_timestamp=1571657171505&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"
   integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
@@ -7928,7 +7723,7 @@ object-is@^1.0.1:
     define-properties "^1.1.3"
     es-abstract "^1.17.5"
 
-object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.0, object-keys@^1.1.1:
+object-keys@^1.0.11, object-keys@^1.1.0, object-keys@^1.1.1:
   version "1.1.1"
   resolved "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz"
   integrity sha1-HEfyct8nfzsdrwYWd9nILiMixg4=
@@ -7940,17 +7735,7 @@ object-visit@^1.0.0:
   dependencies:
     isobject "^3.0.0"
 
-object.assign@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.0.tgz"
-  integrity sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=
-  dependencies:
-    define-properties "^1.1.2"
-    function-bind "^1.1.1"
-    has-symbols "^1.0.0"
-    object-keys "^1.0.11"
-
-object.assign@^4.1.2:
+object.assign@^4.1.0, object.assign@^4.1.2:
   version "4.1.3"
   resolved "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.3.tgz"
   integrity sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA==
@@ -7968,16 +7753,6 @@ object.getownpropertydescriptors@^2.0.3:
     define-properties "^1.1.3"
     es-abstract "^1.17.0-next.1"
 
-object.getownpropertydescriptors@^2.1.0:
-  version "2.1.4"
-  resolved "https://registry.npmmirror.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz"
-  integrity sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ==
-  dependencies:
-    array.prototype.reduce "^1.0.4"
-    call-bind "^1.0.2"
-    define-properties "^1.1.4"
-    es-abstract "^1.20.1"
-
 object.pick@^1.3.0:
   version "1.3.0"
   resolved "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz"
@@ -8322,11 +8097,6 @@ path-key@^3.0.0, path-key@^3.1.0:
   resolved "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz"
   integrity sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=
 
-path-parse@^1.0.6:
-  version "1.0.6"
-  resolved "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz"
-  integrity sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=
-
 path-parse@^1.0.7:
   version "1.0.7"
   resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz"
@@ -8793,17 +8563,17 @@ postcss-unique-selectors@^4.0.1:
     postcss "^7.0.0"
     uniqs "^2.0.0"
 
-postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1:
+postcss-value-parser@^3.0.0:
   version "3.3.1"
   resolved "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz"
   integrity sha1-n/giVH4okyE88cMO+lGsX9G6goE=
 
-postcss-value-parser@^4.0.2:
-  version "4.1.0"
-  resolved "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz"
-  integrity sha1-RD9qIM7WSBor2k+oUypuVdeJoss=
+postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1:
+  version "3.3.1"
+  resolved "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz"
+  integrity sha1-n/giVH4okyE88cMO+lGsX9G6goE=
 
-postcss-value-parser@^4.1.0:
+postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0:
   version "4.2.0"
   resolved "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
   integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
@@ -8950,11 +8720,6 @@ pumpify@^1.3.3:
     inherits "^2.0.3"
     pump "^2.0.0"
 
-punycode@1.3.2:
-  version "1.3.2"
-  resolved "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz"
-  integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
-
 punycode@^1.2.4:
   version "1.4.1"
   resolved "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz"
@@ -8965,6 +8730,11 @@ punycode@^2.1.0, punycode@^2.1.1:
   resolved "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz"
   integrity sha1-tYsBCsQMIsVldhbI0sLALHv0eew=
 
+punycode@1.3.2:
+  version "1.3.2"
+  resolved "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz"
+  integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
+
 pupa@^2.0.1:
   version "2.0.1"
   resolved "https://registry.npm.taobao.org/pupa/download/pupa-2.0.1.tgz"
@@ -8977,16 +8747,16 @@ q@^1.1.2:
   resolved "https://registry.npmmirror.com/q/-/q-1.5.1.tgz"
   integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==
 
-qs@6.7.0:
-  version "6.7.0"
-  resolved "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz"
-  integrity sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=
-
 qs@~6.5.2:
   version "6.5.2"
   resolved "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz"
   integrity sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=
 
+qs@6.7.0:
+  version "6.7.0"
+  resolved "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz"
+  integrity sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=
+
 query-string@^4.1.0:
   version "4.3.4"
   resolved "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz?cache=0&sync_timestamp=1591853336029&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquery-string%2Fdownload%2Fquery-string-4.3.4.tgz"
@@ -9116,7 +8886,7 @@ read-pkg@^5.1.1:
     parse-json "^5.0.0"
     type-fest "^0.6.0"
 
-"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
+readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6, "readable-stream@1 || 2":
   version "2.3.7"
   resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz"
   integrity sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=
@@ -9129,7 +8899,25 @@ read-pkg@^5.1.1:
     string_decoder "~1.1.1"
     util-deprecate "~1.0.1"
 
-readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0:
+readable-stream@^3.0.6:
+  version "3.6.0"
+  resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz"
+  integrity sha1-M3u9o63AcGvT4CRCaihtS0sskZg=
+  dependencies:
+    inherits "^2.0.3"
+    string_decoder "^1.1.1"
+    util-deprecate "^1.0.1"
+
+readable-stream@^3.1.1:
+  version "3.6.0"
+  resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz"
+  integrity sha1-M3u9o63AcGvT4CRCaihtS0sskZg=
+  dependencies:
+    inherits "^2.0.3"
+    string_decoder "^1.1.1"
+    util-deprecate "^1.0.1"
+
+readable-stream@^3.6.0:
   version "3.6.0"
   resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz"
   integrity sha1-M3u9o63AcGvT4CRCaihtS0sskZg=
@@ -9365,14 +9153,7 @@ resolve-url@^0.2.1:
   resolved "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz"
   integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
 
-resolve@^1.10.0, resolve@^1.12.0, resolve@^1.2.0, resolve@^1.3.2, resolve@^1.8.1:
-  version "1.17.0"
-  resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.17.0.tgz"
-  integrity sha1-sllBtUloIxzC0bt2p5y38sC/hEQ=
-  dependencies:
-    path-parse "^1.0.6"
-
-resolve@~1.22.0:
+resolve@^1.10.0, resolve@^1.12.0, resolve@^1.2.0, resolve@^1.3.2, resolve@^1.8.1, resolve@~1.22.0:
   version "1.22.1"
   resolved "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz"
   integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
@@ -9445,13 +9226,6 @@ right-align@^0.1.1:
   dependencies:
     align-text "^0.1.1"
 
-rimraf@2.6.3:
-  version "2.6.3"
-  resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.6.3.tgz"
-  integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
-  dependencies:
-    glob "^7.1.3"
-
 rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3:
   version "2.7.1"
   resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz"
@@ -9459,6 +9233,13 @@ rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3:
   dependencies:
     glob "^7.1.3"
 
+rimraf@2.6.3:
+  version "2.6.3"
+  resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.6.3.tgz"
+  integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
+  dependencies:
+    glob "^7.1.3"
+
 ripemd160@^2.0.0, ripemd160@^2.0.1:
   version "2.0.2"
   resolved "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz"
@@ -9488,7 +9269,7 @@ run-queue@^1.0.0, run-queue@^1.0.3:
   dependencies:
     aproba "^1.1.1"
 
-rw@1, rw@^1.3.2:
+rw@^1.3.2, rw@1:
   version "1.3.3"
   resolved "https://registry.npmmirror.com/rw/-/rw-1.3.3.tgz"
   integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==
@@ -9500,12 +9281,12 @@ rxjs@^6.5.3:
   dependencies:
     tslib "^1.9.0"
 
-safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@>=5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1, safe-buffer@5.1.2:
   version "5.1.2"
   resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz"
   integrity sha1-mR7GnSluAxN0fVm9/St0XDX4go0=
 
-safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
+safe-buffer@^5.2.0:
   version "5.2.1"
   resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz"
   integrity sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=
@@ -9517,7 +9298,7 @@ safe-regex@^1.1.0:
   dependencies:
     ret "~0.1.10"
 
-"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@^2.1.2, safer-buffer@~2.1.0:
+safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@^2.1.2, "safer-buffer@>= 2.1.2 < 3", safer-buffer@~2.1.0:
   version "2.1.2"
   resolved "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz"
   integrity sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=
@@ -9536,7 +9317,7 @@ schema-utils@^1.0.0:
     ajv-errors "^1.0.0"
     ajv-keywords "^3.1.0"
 
-schema-utils@^2.0.0, schema-utils@^2.5.0, schema-utils@^2.6.1, schema-utils@^2.6.5:
+schema-utils@^2.0.0, schema-utils@^2.5.0, schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.7.0:
   version "2.7.0"
   resolved "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.0.tgz"
   integrity sha1-FxUfdtjq5n+793lgwzxnatn078c=
@@ -9545,15 +9326,6 @@ schema-utils@^2.0.0, schema-utils@^2.5.0, schema-utils@^2.6.1, schema-utils@^2.6
     ajv "^6.12.2"
     ajv-keywords "^3.4.1"
 
-schema-utils@^2.7.0:
-  version "2.7.1"
-  resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz"
-  integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==
-  dependencies:
-    "@types/json-schema" "^7.0.5"
-    ajv "^6.12.4"
-    ajv-keywords "^3.5.2"
-
 script-loader@0.7.2:
   version "0.7.2"
   resolved "https://registry.npmmirror.com/script-loader/-/script-loader-0.7.2.tgz"
@@ -9585,7 +9357,7 @@ select-hose@^2.0.0:
 select@^1.1.2:
   version "1.1.2"
   resolved "https://registry.npmjs.org/select/-/select-1.1.2.tgz"
-  integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=
+  integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==
 
 selfsigned@^1.10.8:
   version "1.10.14"
@@ -9601,21 +9373,41 @@ semver-diff@^3.1.1:
   dependencies:
     semver "^6.3.0"
 
-"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
+semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, "semver@2 || 3 || 4 || 5":
   version "5.7.1"
   resolved "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz"
   integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
 
-semver@7.0.0:
-  version "7.0.0"
-  resolved "https://registry.npmmirror.com/semver/-/semver-7.0.0.tgz"
-  integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
+semver@^6.0.0:
+  version "6.3.0"
+  resolved "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz"
+  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+
+semver@^6.1.0:
+  version "6.3.0"
+  resolved "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz"
+  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+
+semver@^6.1.2:
+  version "6.3.0"
+  resolved "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz"
+  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
 
-semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
+semver@^6.2.0:
   version "6.3.0"
   resolved "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz"
   integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
 
+semver@^6.3.0:
+  version "6.3.0"
+  resolved "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz"
+  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+
+semver@7.0.0:
+  version "7.0.0"
+  resolved "https://registry.npmmirror.com/semver/-/semver-7.0.0.tgz"
+  integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
+
 send@0.17.1:
   version "0.17.1"
   resolved "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz"
@@ -9912,24 +9704,17 @@ source-map-url@^0.4.0:
   resolved "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz"
   integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
 
-source-map@0.1.32:
-  version "0.1.32"
-  resolved "https://registry.npmmirror.com/source-map/-/source-map-0.1.32.tgz"
-  integrity sha512-htQyLrrRLkQ87Zfrir4/yN+vAUd6DNjVayEjTSHXu29AYQJw57I4/xEL/M6p6E/woPNJwvZt6rVlzc7gFEJccQ==
-  dependencies:
-    amdefine ">=0.0.4"
-
-source-map@0.5.6:
-  version "0.5.6"
-  resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.5.6.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.6.tgz"
-  integrity sha1-dc449SvwczxafwwRjYEzSiu19BI=
-
 source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.1:
   version "0.5.7"
   resolved "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz"
   integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
 
-source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
+source-map@^0.6.0:
+  version "0.6.1"
+  resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"
+  integrity sha1-dHIq8y6WFOnCh6jQu95IteLxomM=
+
+source-map@^0.6.1:
   version "0.6.1"
   resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"
   integrity sha1-dHIq8y6WFOnCh6jQu95IteLxomM=
@@ -9939,6 +9724,28 @@ source-map@^0.7.3:
   resolved "https://registry.npmmirror.com/source-map/-/source-map-0.7.3.tgz"
   integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
 
+source-map@~0.6.0:
+  version "0.6.1"
+  resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"
+  integrity sha1-dHIq8y6WFOnCh6jQu95IteLxomM=
+
+source-map@~0.6.1:
+  version "0.6.1"
+  resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"
+  integrity sha1-dHIq8y6WFOnCh6jQu95IteLxomM=
+
+source-map@0.1.32:
+  version "0.1.32"
+  resolved "https://registry.npmmirror.com/source-map/-/source-map-0.1.32.tgz"
+  integrity sha512-htQyLrrRLkQ87Zfrir4/yN+vAUd6DNjVayEjTSHXu29AYQJw57I4/xEL/M6p6E/woPNJwvZt6rVlzc7gFEJccQ==
+  dependencies:
+    amdefine ">=0.0.4"
+
+source-map@0.5.6:
+  version "0.5.6"
+  resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.5.6.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.6.tgz"
+  integrity sha1-dc449SvwczxafwwRjYEzSiu19BI=
+
 spdx-correct@^3.0.0:
   version "3.1.1"
   resolved "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz?cache=0&sync_timestamp=1590161967473&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-correct%2Fdownload%2Fspdx-correct-3.1.1.tgz"
@@ -10108,6 +9915,13 @@ strict-uri-encode@^1.0.0:
   resolved "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz"
   integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
 
+string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@~1.1.1:
+  version "1.1.1"
+  resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz"
+  integrity sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=
+  dependencies:
+    safe-buffer "~5.1.0"
+
 string-convert@^0.2.0:
   version "0.2.1"
   resolved "https://registry.npm.taobao.org/string-convert/download/string-convert-0.2.1.tgz"
@@ -10130,7 +9944,16 @@ string-width@^3.0.0, string-width@^3.1.0:
     is-fullwidth-code-point "^2.0.0"
     strip-ansi "^5.1.0"
 
-string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0:
+string-width@^4.0.0:
+  version "4.2.0"
+  resolved "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz"
+  integrity sha1-lSGCxGzHssMT0VluYjmSvRY7crU=
+  dependencies:
+    emoji-regex "^8.0.0"
+    is-fullwidth-code-point "^3.0.0"
+    strip-ansi "^6.0.0"
+
+string-width@^4.1.0, string-width@^4.2.0:
   version "4.2.0"
   resolved "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz"
   integrity sha1-lSGCxGzHssMT0VluYjmSvRY7crU=
@@ -10166,21 +9989,14 @@ string.prototype.trimstart@^1.0.5:
     define-properties "^1.1.4"
     es-abstract "^1.19.5"
 
-string_decoder@^1.0.0, string_decoder@^1.1.1:
-  version "1.3.0"
-  resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz"
-  integrity sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=
-  dependencies:
-    safe-buffer "~5.2.0"
-
-string_decoder@~1.1.1:
-  version "1.1.1"
-  resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz"
-  integrity sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=
+strip-ansi@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz"
+  integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
   dependencies:
-    safe-buffer "~5.1.0"
+    ansi-regex "^2.0.0"
 
-strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+strip-ansi@^3.0.1:
   version "3.0.1"
   resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz"
   integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
@@ -10194,7 +10010,14 @@ strip-ansi@^4.0.0:
   dependencies:
     ansi-regex "^3.0.0"
 
-strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
+strip-ansi@^5.0.0, strip-ansi@^5.1.0:
+  version "5.2.0"
+  resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz"
+  integrity sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=
+  dependencies:
+    ansi-regex "^4.1.0"
+
+strip-ansi@^5.2.0:
   version "5.2.0"
   resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz"
   integrity sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=
@@ -10273,7 +10096,7 @@ stylus-loader@^3.0.2:
     lodash.clonedeep "^4.5.0"
     when "~3.6.x"
 
-stylus@^0.54.8:
+stylus@^0.54.8, stylus@>=0.52.4:
   version "0.54.8"
   resolved "https://registry.npmmirror.com/stylus/-/stylus-0.54.8.tgz"
   integrity sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==
@@ -10452,6 +10275,11 @@ throttle-debounce@^2.0.1:
   resolved "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-2.3.0.tgz"
   integrity sha512-H7oLPV0P7+jgvrk+6mwwwBDmxTaxnu9HMXmloNLXwnNO0ZxZ31Orah2n8lU1eMPvsaowP2CX+USCgyovXfdOFQ==
 
+through@^2.3.6, through@~2.3.4, through@~2.3.8:
+  version "2.3.8"
+  resolved "https://registry.npmmirror.com/through/-/through-2.3.8.tgz"
+  integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
+
 through2@^2.0.0:
   version "2.0.5"
   resolved "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz"
@@ -10460,11 +10288,6 @@ through2@^2.0.0:
     readable-stream "~2.3.6"
     xtend "~4.0.1"
 
-through@^2.3.6, through@~2.3.4, through@~2.3.8:
-  version "2.3.8"
-  resolved "https://registry.npmmirror.com/through/-/through-2.3.8.tgz"
-  integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
-
 thunky@^1.0.2:
   version "1.1.0"
   resolved "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz"
@@ -10598,16 +10421,16 @@ ts-pnp@^1.1.6:
   resolved "https://registry.npm.taobao.org/ts-pnp/download/ts-pnp-1.2.0.tgz"
   integrity sha1-pQCtCEsHmPHDBxrzkeZZEshrypI=
 
-tslib@2.3.0:
-  version "2.3.0"
-  resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz"
-  integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
-
 tslib@^1.10.0, tslib@^1.9.0:
   version "1.13.0"
   resolved "https://registry.npm.taobao.org/tslib/download/tslib-1.13.0.tgz?cache=0&sync_timestamp=1589411820927&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"
   integrity sha1-yIHhPMcBWJTtkUhi0nZDb6mkcEM=
 
+tslib@2.3.0:
+  version "2.3.0"
+  resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz"
+  integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
+
 tty-browserify@0.0.0:
   version "0.0.0"
   resolved "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz"
@@ -10672,14 +10495,6 @@ uc.micro@^1.0.1, uc.micro@^1.0.5:
   resolved "https://registry.npm.taobao.org/uc.micro/download/uc.micro-1.0.6.tgz"
   integrity sha1-nEEagCpAmpH8bPdAgbq6NLJEmaw=
 
-uglify-js@3.4.x:
-  version "3.4.10"
-  resolved "https://registry.npmmirror.com/uglify-js/-/uglify-js-3.4.10.tgz"
-  integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==
-  dependencies:
-    commander "~2.19.0"
-    source-map "~0.6.1"
-
 uglify-js@^2.6.2:
   version "2.8.29"
   resolved "https://registry.npmmirror.com/uglify-js/-/uglify-js-2.8.29.tgz"
@@ -10690,6 +10505,14 @@ uglify-js@^2.6.2:
   optionalDependencies:
     uglify-to-browserify "~1.0.0"
 
+uglify-js@3.4.x:
+  version "3.4.10"
+  resolved "https://registry.npmmirror.com/uglify-js/-/uglify-js-3.4.10.tgz"
+  integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==
+  dependencies:
+    commander "~2.19.0"
+    source-map "~0.6.1"
+
 uglify-to-browserify@~1.0.0:
   version "1.0.2"
   resolved "https://registry.npmmirror.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz"
@@ -10774,7 +10597,7 @@ universalify@^0.1.0:
   resolved "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&sync_timestamp=1583530825899&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz"
   integrity sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=
 
-unpipe@1.0.0, unpipe@~1.0.0:
+unpipe@~1.0.0, unpipe@1.0.0:
   version "1.0.0"
   resolved "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz"
   integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
@@ -10797,10 +10620,10 @@ upath@^1.1.0, upath@^1.1.1:
   resolved "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz"
   integrity sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=
 
-update-browserslist-db@^1.0.13:
-  version "1.0.13"
-  resolved "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz"
-  integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==
+update-browserslist-db@^1.0.9:
+  version "1.0.10"
+  resolved "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz"
+  integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==
   dependencies:
     escalade "^3.1.1"
     picocolors "^1.0.0"
@@ -10892,7 +10715,7 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1:
   resolved "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz"
   integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
 
-util.promisify@1.0.0:
+util.promisify@~1.0.0, util.promisify@1.0.0:
   version "1.0.0"
   resolved "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz"
   integrity sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=
@@ -10900,15 +10723,12 @@ util.promisify@1.0.0:
     define-properties "^1.1.2"
     object.getownpropertydescriptors "^2.0.3"
 
-util.promisify@~1.0.0:
-  version "1.0.1"
-  resolved "https://registry.npmmirror.com/util.promisify/-/util.promisify-1.0.1.tgz"
-  integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==
+util@^0.11.0:
+  version "0.11.1"
+  resolved "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.11.1.tgz"
+  integrity sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=
   dependencies:
-    define-properties "^1.1.3"
-    es-abstract "^1.17.2"
-    has-symbols "^1.0.1"
-    object.getownpropertydescriptors "^2.1.0"
+    inherits "2.0.3"
 
 util@0.10.3:
   version "0.10.3"
@@ -10917,13 +10737,6 @@ util@0.10.3:
   dependencies:
     inherits "2.0.1"
 
-util@^0.11.0:
-  version "0.11.1"
-  resolved "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.11.1.tgz"
-  integrity sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=
-  dependencies:
-    inherits "2.0.3"
-
 utila@^0.4.0, utila@~0.4:
   version "0.4.0"
   resolved "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz"
@@ -11132,7 +10945,7 @@ vue-style-loader@^4.1.0, vue-style-loader@^4.1.2:
     hash-sum "^1.0.2"
     loader-utils "^1.0.2"
 
-vue-template-compiler@^2.6.10, vue-template-compiler@^2.6.11:
+vue-template-compiler@^2.0.0, vue-template-compiler@^2.6.0, vue-template-compiler@^2.6.10, vue-template-compiler@^2.6.11, vue-template-compiler@>=2.5.0:
   version "2.6.11"
   resolved "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.11.tgz"
   integrity sha1-wEcE749JixUxMAGJk+VjCdRpgIA=
@@ -11145,7 +10958,7 @@ vue-template-es2015-compiler@^1.9.0:
   resolved "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz"
   integrity sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=
 
-vue@^2.5.3, vue@^2.6.10, vue@^2.6.11:
+vue@^2.0.0, vue@^2.5.17, vue@^2.5.3, vue@^2.6.0, vue@^2.6.10, vue@^2.6.11, vue@>=2.5.0:
   version "2.6.11"
   resolved "https://registry.npm.taobao.org/vue/download/vue-2.6.11.tgz?cache=0&sync_timestamp=1592000011428&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue%2Fdownload%2Fvue-2.6.11.tgz"
   integrity sha1-dllNh31LEiNEBuhONSdcbVFBJcU=
@@ -11205,7 +11018,7 @@ vuex-persistedstate@^4.1.0:
     deepmerge "^4.2.2"
     shvl "^2.0.3"
 
-vuex@^3.4.0:
+"vuex@^3.0 || ^4.0.0-rc", vuex@^3.4.0:
   version "3.4.0"
   resolved "https://registry.npm.taobao.org/vuex/download/vuex-3.4.0.tgz"
   integrity sha1-IMwIYGLXUHafzh/rs05/zurr3kU=
@@ -11364,7 +11177,7 @@ webpack-theme-color-replacer@1.3.18:
   dependencies:
     webpack-sources "*"
 
-webpack@^4.0.0, webpack@^4.8.1:
+"webpack@^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0", "webpack@^2.0.0 || ^3.0.0 || ^4.0.0", "webpack@^3.0.0 || ^4.0.0", "webpack@^3.0.0 || ^4.1.0 || ^5.0.0-0", webpack@^4.0.0, "webpack@^4.0.0 || ^5.0.0", "webpack@^4.1.0 || ^5.0.0-0", webpack@^4.3.0, webpack@^4.4.0, webpack@^4.8.1, webpack@>=2, "webpack@>=2.0.0 <5.0.0", webpack@>=4.0.0:
   version "4.46.0"
   resolved "https://registry.npmmirror.com/webpack/-/webpack-4.46.0.tgz"
   integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==
@@ -11407,7 +11220,7 @@ webpackbar@3.2.0:
     text-table "^0.2.0"
     wrap-ansi "^5.1.0"
 
-websocket-driver@>=0.5.1, websocket-driver@^0.7.4:
+websocket-driver@^0.7.4, websocket-driver@>=0.5.1:
   version "0.7.4"
   resolved "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.4.tgz?cache=0&sync_timestamp=1591288600527&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.7.4.tgz"
   integrity sha1-ia1Slbv2S0gKvLox5JU6ynBvV2A=
diff --git a/base-manager/db/add.sql b/base-manager/db/add.sql
index 619c833d3ded3d4dd6721c3a5c6c24cba363594b..2ee1b6580201c127426ad833dc622b521ee5c2c5 100644
--- a/base-manager/db/add.sql
+++ b/base-manager/db/add.sql
@@ -348,5 +348,6 @@ PRIMARY KEY  (`id`)
 
 ALTER TABLE mortals_sys_dept ADD COLUMN  `inNum` int(9)    DEFAULT '0' COMMENT '鍏ラ┗浜嬮」鏁伴噺' AFTER updateTime;
 
+INSERT INTO mortals_xhx_task VALUES (null, '鍚屾鍏ㄩ儴绔欑偣浜嬮」鏉愭枡闄勪欢', 'SyncMatterDaumFileTask', 0, 'SyncMatterDaumFileTask', '', '', 1, 3600, '16:05', '', '192.168.1.107', '2024-05-18 16:05:00', 0, '2024-03-01 10:59:53', 1, '绯荤粺绠$悊鍛�');
 
 
diff --git a/base-manager/db/permission.sql b/base-manager/db/permission.sql
new file mode 100644
index 0000000000000000000000000000000000000000..d163ec37c01f5b190caee5847135f29d430c790d
--- /dev/null
+++ b/base-manager/db/permission.sql
@@ -0,0 +1,44 @@
+
+-- ----------------------------
+-- 鏁版嵁鎺堟潈鏉冮檺琛�
+-- ----------------------------
+DROP TABLE IF EXISTS `mortals_xhx_dimension`;
+CREATE TABLE `mortals_xhx_dimension` (
+    `id` bigint(20)   AUTO_INCREMENT   COMMENT '搴忓彿锛屼富閿紝鑷闀�',
+    `dimension_code` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '缁村害缂栫爜',
+    `dimension_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '缁村害鍚嶇О',
+    `dimension_value` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '缁村害鍊�',
+    `dimension_type` tinyint(2)  DEFAULT '1' COMMENT '缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)',
+    `createTime` datetime      COMMENT '鍒涘缓鏃堕棿',
+    `createUserId` bigint(20)      COMMENT '鍒涘缓鐢ㄦ埛',
+    `updateUserId` bigint(20)      COMMENT '鏇存柊鐢ㄦ埛',
+    `updateTime` datetime      COMMENT '鏇存柊鏃堕棿',
+    PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT='鎺堟潈缁村害';
+
+-- ----------------------------
+-- 瑙掕壊璧勬簮鎺堟潈瑙勫垯琛�
+-- ----------------------------
+DROP TABLE IF EXISTS `mortals_xhx_dimension_resource_rule`;
+CREATE TABLE `mortals_xhx_dimension_resource_rule` (
+    `id` bigint(20)   AUTO_INCREMENT   COMMENT '搴忓彿锛屼富閿紝鑷闀�',
+    `role_id` bigint(20)  DEFAULT NULL COMMENT '瑙掕壊ID',
+    `role_name` varchar(64)  DEFAULT NULL COMMENT '瑙掕壊鍚嶇О',
+    `resource_id` bigint(20) DEFAULT NULL COMMENT '璧勬簮ID',
+    `resource_name` varchar(64)  DEFAULT NULL COMMENT '璧勬簮鍚嶇О',
+    `rule_code` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '瑙勫垯缂栫爜',
+    `rule_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '瑙勫垯鍚嶇О',
+    `rule_condition` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT 'IN' COMMENT '瑙勫垯鏉′欢(IN.灞炰簬,<.灏忎簬,>.澶т簬,=.绛変簬,!=.涓嶇瓑浜�,>=.澶т簬绛変簬,<=.灏忎簬绛変簬,like %.宸︽ā绯�,like %.鍙虫ā绯�)',
+    `rule_value` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '瑙勫垯鍊�,鍥哄畾鍊兼垨鑰呯郴缁熷彉閲�',
+    `rule_type` tinyint(2)  DEFAULT '1' COMMENT '瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)',
+    `create_time` datetime      COMMENT '鍒涘缓鏃堕棿',
+    `create_user_id` bigint(20)      COMMENT '鍒涘缓鐢ㄦ埛',
+    `update_user_id` bigint(20)      COMMENT '鏇存柊鐢ㄦ埛',
+    `update_time` datetime      COMMENT '鏇存柊鏃堕棿',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT='瑙掕壊璧勬簮缁村害瑙勫垯琛�';
+
+
+
+
+
diff --git "a/base-manager/doc/Notable - Export (390F)/\345\237\272\347\241\200\346\234\215\345\212\241\345\271\263\345\217\260.md" "b/base-manager/doc/Notable - Export (390F)/\345\237\272\347\241\200\346\234\215\345\212\241\345\271\263\345\217\260.md"
new file mode 100644
index 0000000000000000000000000000000000000000..fcb86eadb0cfd7436002c5795514af9eb504ea5a
--- /dev/null
+++ "b/base-manager/doc/Notable - Export (390F)/\345\237\272\347\241\200\346\234\215\345\212\241\345\271\263\345\217\260.md"	
@@ -0,0 +1,12967 @@
+---
+tags: [Import-3f04]
+title: 鍩虹鏈嶅姟骞冲彴
+created: '2022-09-03T09:48:09.107Z'
+modified: '2023-04-27T01:44:45.818Z'
+---
+
+# 鍩虹鏈嶅姟骞冲彴
+
+鐗堟湰 |  鍒涘缓鏃堕棿   | 浣滆€� |  澶囨敞淇℃伅
+---|---|---|---
+v1.0|2022-01-20|zxfei| 鎺ュ彛鏂囨。
+
+## 鏁版嵁绫诲瀷
+
+绫诲瀷鍚嶇О|绫诲瀷鎻忚堪|鍙傝€冩牱渚�
+---|---|---
+String |瀛楃涓瞸A銆乤銆乤b
+Integer|鏁板瓧绫诲瀷|1銆�12銆�-1
+Long|闀挎暣鍨嬫暟瀛梶1銆�12銆�-1
+date|鏃堕棿绫诲瀷,鍗曚綅绾崇鏁板瓧|167988745573
+BigDecimal|灏忔暟绫诲瀷|545.256
+object|瀵硅薄绫诲瀷|{"name":"zhang3"}
+arrays|鏁扮粍绫诲瀷|[{"name":"zhang3"},{"name":"zhang2"}]
+
+## 绯荤粺鏈嶅姟
+
+### 鐧诲綍
+
+**璇锋眰URL:** login/login
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鐢ㄦ埛鐧诲綍
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+loginName|String|鐢ㄦ埛鍚嶇О|鏄瘄-
+password|String|鐢ㄦ埛瀵嗙爜|鏄瘄-
+securityCode|String|鏍¢獙鐮亅鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "loginName":"zhang3",
+    "password":"123456",
+    "securityCode":"5455"
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鐧诲綍鎴愬姛",
+    "code":1,
+    "data":{
+
+    }
+}
+
+```
+
+### 鐧诲嚭
+
+**璇锋眰URL:** login/logout
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鐢ㄦ埛閫€鍑烘敞閿€
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+
+```
+
+### 鑾峰彇楠岃瘉鐮�
+
+**璇锋眰URL:** securitycode/createCode
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** image/gif
+
+**绠€瑕佹弿杩�:** 鐢ㄦ埛閫€鍑烘敞閿€
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+
+### 涓婁紶闄勪欢
+
+**璇锋眰URL:** file/commonupload
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** multipart/form-data
+
+**绠€瑕佹弿杩�:** 鐢ㄦ埛涓婁紶闄勪欢
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+file|multipart|闄勪欢|鏄瘄-
+prePath|String|闄勪欢瀛樻斁鐩稿璺緞|鍚涓嶅~鏃跺€欓粯璁や负/file/fileupload
+
+**璇锋眰鏍蜂緥:**
+
+```
+http://127.0.0.1/file/commonupload?prePath=/file/fileupload
+Content-Type: multipart/form-data; boundary=WebAppBoundary
+
+--WebAppBoundary
+Content-Disposition: form-data; name="file"; filename="1.excel"
+Content-Type: multipart/form-data
+```
+
+**鍝嶅簲鍙傛暟:**
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+## 绯荤粺鍙傛暟淇℃伅
+
+### 鏌ヨ鍙傛暟淇℃伅鍒楄〃
+
+**璇锋眰URL:** param/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ鍙傛暟淇℃伅
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+page|Integer|鍚褰撳墠椤�
+size|Integer|鍚姣忛〉鏉℃暟锛屽€间负-1锛屾煡璇㈡墍鏈夎褰�
+
+**璇锋眰鏍蜂緥:**
+```
+  {
+        "page":1,
+        "size":10
+  }
+
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О|鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;per_page|Integer|姣忛〉鏉℃暟
+&emsp;total|Integer|鎬绘潯鏁�
+&emsp;last_page|Integer|鎬婚〉鏁�
+&emsp;current_page|Integer|褰撳墠椤�
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;&emsp;name|String|鍙傛暟鍚嶇О
+&emsp;&emsp;firstOrganize|String|涓€绾х粍缁囷紝濡傦細骞冲彴閰嶇疆
+&emsp;&emsp;secondOrganize|String|浜岀骇缁勭粐锛屽锛氬熀纭€閰嶇疆
+&emsp;&emsp;paramKey|String|鍙傛暟閿紝鍏ㄥ眬鍞竴
+&emsp;&emsp;paramValue|String|鍙傛暟鍊�
+&emsp;&emsp;validStatus|Integer|鍙傛暟鏈夋晥鐘舵€侊紝0锛氱鐢紝1锛氬惎鐢紝榛樿1
+&emsp;&emsp;modStatus|Integer|鍙傛暟淇敼鐘舵€侊紝0锛氶殣钘忥紝1锛氶〉闈粎鏌ョ湅锛�2锛氶〉闈㈠彲淇敼锛�3锛氶〉闈㈠彲鍒犻櫎锛�4锛氶〉闈㈠彲淇敼鍒犻櫎锛岄粯璁�4
+&emsp;&emsp;displayType|Integer|灞曠幇绫诲瀷锛�0锛氭櫘閫氭枃鏈锛�1锛氬琛屾枃鏈锛�2锛氬紑鍏筹紝3锛氬潡杈撳叆妗嗭紝榛樿锛�0
+&emsp;&emsp;remark|String|澶囨敞
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;&emsp;createUserName|String|鍒涘缓鐢ㄦ埛鍚嶇О
+dict|object|瀛楀吀瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code":1,
+    "data":{
+    }
+}
+```
+
+### 鏌ョ湅鍙傛暟淇℃伅
+
+**璇锋眰URL:** param/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅鍙傛暟淇℃伅锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|Long|鏄瘄ID
+
+**璇锋眰鏍蜂緥:**
+```
+    http://localhost/param/info?id=549
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:-------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;name|String|鍙傛暟鍚嶇О
+&emsp;firstOrganize|String|涓€绾х粍缁囷紝濡傦細骞冲彴閰嶇疆
+&emsp;secondOrganize|String|浜岀骇缁勭粐锛屽锛氬熀纭€閰嶇疆
+&emsp;paramKey|String|鍙傛暟閿紝鍏ㄥ眬鍞竴
+&emsp;paramValue|String|鍙傛暟鍊�
+&emsp;validStatus|Integer|鍙傛暟鏈夋晥鐘舵€侊紝0锛氱鐢紝1锛氬惎鐢紝榛樿1
+&emsp;modStatus|Integer|鍙傛暟淇敼鐘舵€侊紝0锛氶殣钘忥紝1锛氶〉闈粎鏌ョ湅锛�2锛氶〉闈㈠彲淇敼锛�3锛氶〉闈㈠彲鍒犻櫎锛�4锛氶〉闈㈠彲淇敼鍒犻櫎锛岄粯璁�4
+&emsp;displayType|Integer|灞曠幇绫诲瀷锛�0锛氭櫘閫氭枃鏈锛�1锛氬琛屾枃鏈锛�2锛氬紑鍏筹紝3锛氬潡杈撳叆妗嗭紝榛樿锛�0
+&emsp;remark|String|澶囨敞
+&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;createUserName|String|鍒涘缓鐢ㄦ埛鍚嶇О
+dict|object|瀛楀吀瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code": 1,
+    "data": {
+            "id":29,
+            "name":"4p989i",
+            "firstOrganize":"fj5xc2",
+            "secondOrganize":"d5yjlg",
+            "paramKey":"z8z5d0",
+            "paramValue":"ezk1oj",
+            "validStatus":1880,
+            "modStatus":3777,
+            "displayType":9326,
+            "remark":"8vgfqn",
+            "createTime":"2023-03-24",
+            "createUserId":6280,
+            "createUserName":"gv0v64"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊鍙傛暟淇℃伅
+
+**璇锋眰URL:** param/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂板弬鏁颁俊鎭細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:-------
+name|String|鍚鍙傛暟鍚嶇О
+firstOrganize|String|鍚涓€绾х粍缁囷紝濡傦細骞冲彴閰嶇疆
+secondOrganize|String|鍚浜岀骇缁勭粐锛屽锛氬熀纭€閰嶇疆
+paramKey|String|鍚鍙傛暟閿紝鍏ㄥ眬鍞竴
+paramValue|String|鍚鍙傛暟鍊�
+validStatus|Integer|鍚鍙傛暟鏈夋晥鐘舵€侊紝0锛氱鐢紝1锛氬惎鐢紝榛樿1
+modStatus|Integer|鍚鍙傛暟淇敼鐘舵€侊紝0锛氶殣钘忥紝1锛氶〉闈粎鏌ョ湅锛�2锛氶〉闈㈠彲淇敼锛�3锛氶〉闈㈠彲鍒犻櫎锛�4锛氶〉闈㈠彲淇敼鍒犻櫎锛岄粯璁�4
+displayType|Integer|鍚灞曠幇绫诲瀷锛�0锛氭櫘閫氭枃鏈锛�1锛氬琛屾枃鏈锛�2锛氬紑鍏筹紝3锛氬潡杈撳叆妗嗭紝榛樿锛�0
+remark|String|鍚澶囨敞
+createUserName|String|鍚鍒涘缓鐢ㄦ埛鍚嶇О
+
+**璇锋眰鏍蜂緥:**
+```
+{
+    "name":"eqddrw",
+    "firstOrganize":"3u01r6",
+    "secondOrganize":"upj5wt",
+    "paramKey":"ng5zkj",
+    "paramValue":"ptyky4",
+    "validStatus":2336,
+    "modStatus":5096,
+    "displayType":5050,
+    "remark":"4nt041",
+    "createUserName":"9g95tp"
+}
+
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;&emsp;name|String|鍙傛暟鍚嶇О
+&emsp;&emsp;firstOrganize|String|涓€绾х粍缁囷紝濡傦細骞冲彴閰嶇疆
+&emsp;&emsp;secondOrganize|String|浜岀骇缁勭粐锛屽锛氬熀纭€閰嶇疆
+&emsp;&emsp;paramKey|String|鍙傛暟閿紝鍏ㄥ眬鍞竴
+&emsp;&emsp;paramValue|String|鍙傛暟鍊�
+&emsp;&emsp;validStatus|Integer|鍙傛暟鏈夋晥鐘舵€侊紝0锛氱鐢紝1锛氬惎鐢紝榛樿1
+&emsp;&emsp;modStatus|Integer|鍙傛暟淇敼鐘舵€侊紝0锛氶殣钘忥紝1锛氶〉闈粎鏌ョ湅锛�2锛氶〉闈㈠彲淇敼锛�3锛氶〉闈㈠彲鍒犻櫎锛�4锛氶〉闈㈠彲淇敼鍒犻櫎锛岄粯璁�4
+&emsp;&emsp;displayType|Integer|灞曠幇绫诲瀷锛�0锛氭櫘閫氭枃鏈锛�1锛氬琛屾枃鏈锛�2锛氬紑鍏筹紝3锛氬潡杈撳叆妗嗭紝榛樿锛�0
+&emsp;&emsp;remark|String|澶囨敞
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;&emsp;createUserName|String|鍒涘缓鐢ㄦ埛鍚嶇О
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{}
+    }
+}
+
+```
+
+### 鍒犻櫎鍙傛暟淇℃伅
+
+**璇锋眰URL:** param/delete
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎鍙傛暟淇℃伅
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|String|鏄瘄鏁扮粍
+
+**璇锋眰鏍蜂緥:**
+```
+    http://localhost:8080/param/delete?id=1&id=2'
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code":1,
+	"msg":"鎴愬姛"
+}
+
+```
+
+## 浠诲姟淇℃伅
+
+### 鏌ヨ浠诲姟淇℃伅鍒楄〃
+
+**璇锋眰URL:** task/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ浠诲姟淇℃伅
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+page|Integer|鍚褰撳墠椤�
+size|Integer|鍚姣忛〉鏉℃暟锛屽€间负-1锛屾煡璇㈡墍鏈夎褰�
+
+**璇锋眰鏍蜂緥:**
+```
+  {
+        "page":1,
+        "size":10
+  }
+
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О|鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;per_page|Integer|姣忛〉鏉℃暟
+&emsp;total|Integer|鎬绘潯鏁�
+&emsp;last_page|Integer|鎬婚〉鏁�
+&emsp;current_page|Integer|褰撳墠椤�
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;&emsp;name|String|浠诲姟鍚嶇О
+&emsp;&emsp;taskKey|String|浠诲姟鍏抽敭瀛楋紝鍖哄垎浠诲姟鎵ц娴佺▼
+&emsp;&emsp;status|Integer|浠诲姟鐘舵€侊紝0锛氭湭鍚姩锛�1锛氭墽琛屼腑锛岄粯璁�0
+&emsp;&emsp;excuteService|String|浠诲姟鎵ц鏈嶅姟
+&emsp;&emsp;excuteParam|String|浠诲姟鎵ц鍙傛暟
+&emsp;&emsp;excuteHost|String|浠诲姟鎵ц涓绘満锛屼负绌鸿〃绀轰笉闄愬埗浠诲姟鐨勬墽琛屼富鏈猴紝澶氫釜鐢ㄩ€楀彿鍒嗛殧
+&emsp;&emsp;excuteStrategy|Integer|鎵ц绛栫暐锛�1锛氭寜鏃ワ紝2锛氭寜鍛紝3锛氭寜鏈堬紝4锛氭寜闂撮殧鏃堕棿锛岄粯璁�1
+&emsp;&emsp;excuteDate|Long|鎵ц鏃ユ湡锛屾寜鏃ワ細鍒欎负0锛涙寜鍛細鍒欎负1-7锛涙寜鏈堬細鍒欎负锛�1-31锛涙寜闂撮殧鏃堕棿锛氬垯涓洪棿闅旀椂闂达紝鍗曚綅锛氱锛涢粯璁�0
+&emsp;&emsp;excuteTime|String|鎵ц鏃堕棿锛屾牸寮忥細HH:mm锛岄粯璁わ細00:00
+&emsp;&emsp;remark|String|澶囨敞
+&emsp;&emsp;lastExcuteHost|String|鏈€鍚庢墽琛屼富鏈�
+&emsp;&emsp;lastExcuteTime|Date|鏈€鍚庢墽琛屾椂闂�
+&emsp;&emsp;interimExcuteStatus|Integer|涓存椂鎵ц鐘舵€侊紝0锛氭湭鍚敤锛�1锛氱珛鍗虫墽琛屽苟淇濈暀锛�2锛氱珛鍗虫墽琛屽苟鍒犻櫎锛岄粯璁�0
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;&emsp;createUserName|String|鍒涘缓鐢ㄦ埛鍚嶇О
+dict|object|瀛楀吀瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code":1,
+    "data":{
+    }
+}
+```
+
+### 鏌ョ湅浠诲姟淇℃伅
+
+**璇锋眰URL:** task/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅浠诲姟淇℃伅锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|Long|鏄瘄ID
+
+**璇锋眰鏍蜂緥:**
+```
+    http://localhost/task/info?id=549
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:-------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;name|String|浠诲姟鍚嶇О
+&emsp;taskKey|String|浠诲姟鍏抽敭瀛楋紝鍖哄垎浠诲姟鎵ц娴佺▼
+&emsp;status|Integer|浠诲姟鐘舵€侊紝0锛氭湭鍚姩锛�1锛氭墽琛屼腑锛岄粯璁�0
+&emsp;excuteService|String|浠诲姟鎵ц鏈嶅姟
+&emsp;excuteParam|String|浠诲姟鎵ц鍙傛暟
+&emsp;excuteHost|String|浠诲姟鎵ц涓绘満锛屼负绌鸿〃绀轰笉闄愬埗浠诲姟鐨勬墽琛屼富鏈猴紝澶氫釜鐢ㄩ€楀彿鍒嗛殧
+&emsp;excuteStrategy|Integer|鎵ц绛栫暐锛�1锛氭寜鏃ワ紝2锛氭寜鍛紝3锛氭寜鏈堬紝4锛氭寜闂撮殧鏃堕棿锛岄粯璁�1
+&emsp;excuteDate|Long|鎵ц鏃ユ湡锛屾寜鏃ワ細鍒欎负0锛涙寜鍛細鍒欎负1-7锛涙寜鏈堬細鍒欎负锛�1-31锛涙寜闂撮殧鏃堕棿锛氬垯涓洪棿闅旀椂闂达紝鍗曚綅锛氱锛涢粯璁�0
+&emsp;excuteTime|String|鎵ц鏃堕棿锛屾牸寮忥細HH:mm锛岄粯璁わ細00:00
+&emsp;remark|String|澶囨敞
+&emsp;lastExcuteHost|String|鏈€鍚庢墽琛屼富鏈�
+&emsp;lastExcuteTime|Date|鏈€鍚庢墽琛屾椂闂�
+&emsp;interimExcuteStatus|Integer|涓存椂鎵ц鐘舵€侊紝0锛氭湭鍚敤锛�1锛氱珛鍗虫墽琛屽苟淇濈暀锛�2锛氱珛鍗虫墽琛屽苟鍒犻櫎锛岄粯璁�0
+&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;createUserName|String|鍒涘缓鐢ㄦ埛鍚嶇О
+dict|object|瀛楀吀瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code": 1,
+    "data": {
+            "id":6047,
+            "name":"yzacg1",
+            "taskKey":"iyjpoz",
+            "status":7262,
+            "excuteService":"fvv4t3",
+            "excuteParam":"2jgiqq",
+            "excuteHost":"47j23c",
+            "excuteStrategy":4942,
+            "excuteDate":9987,
+            "excuteTime":"gci3nz",
+            "remark":"zfihsf",
+            "lastExcuteHost":"hzzj02",
+            "lastExcuteTime":"2023-03-24",
+            "interimExcuteStatus":8435,
+            "createTime":"2023-03-24",
+            "createUserId":8540,
+            "createUserName":"32vyv1"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊浠诲姟淇℃伅
+
+**璇锋眰URL:** task/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂颁换鍔′俊鎭細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:-------
+name|String|鍚浠诲姟鍚嶇О
+taskKey|String|鍚浠诲姟鍏抽敭瀛楋紝鍖哄垎浠诲姟鎵ц娴佺▼
+status|Integer|鍚浠诲姟鐘舵€侊紝0锛氭湭鍚姩锛�1锛氭墽琛屼腑锛岄粯璁�0
+excuteService|String|鍚浠诲姟鎵ц鏈嶅姟
+excuteParam|String|鍚浠诲姟鎵ц鍙傛暟
+excuteHost|String|鍚浠诲姟鎵ц涓绘満锛屼负绌鸿〃绀轰笉闄愬埗浠诲姟鐨勬墽琛屼富鏈猴紝澶氫釜鐢ㄩ€楀彿鍒嗛殧
+excuteStrategy|Integer|鍚鎵ц绛栫暐锛�1锛氭寜鏃ワ紝2锛氭寜鍛紝3锛氭寜鏈堬紝4锛氭寜闂撮殧鏃堕棿锛岄粯璁�1
+excuteDate|Long|鍚鎵ц鏃ユ湡锛屾寜鏃ワ細鍒欎负0锛涙寜鍛細鍒欎负1-7锛涙寜鏈堬細鍒欎负锛�1-31锛涙寜闂撮殧鏃堕棿锛氬垯涓洪棿闅旀椂闂达紝鍗曚綅锛氱锛涢粯璁�0
+excuteTime|String|鍚鎵ц鏃堕棿锛屾牸寮忥細HH:mm锛岄粯璁わ細00:00
+remark|String|鍚澶囨敞
+lastExcuteHost|String|鍚鏈€鍚庢墽琛屼富鏈�
+lastExcuteTime|Date|鍚鏈€鍚庢墽琛屾椂闂�
+interimExcuteStatus|Integer|鍚涓存椂鎵ц鐘舵€侊紝0锛氭湭鍚敤锛�1锛氱珛鍗虫墽琛屽苟淇濈暀锛�2锛氱珛鍗虫墽琛屽苟鍒犻櫎锛岄粯璁�0
+createUserName|String|鍚鍒涘缓鐢ㄦ埛鍚嶇О
+
+**璇锋眰鏍蜂緥:**
+```
+{
+    "name":"2l07xt",
+    "taskKey":"epvpri",
+    "status":8816,
+    "excuteService":"i9ru4d",
+    "excuteParam":"wb6ocw",
+    "excuteHost":"i8rzpc",
+    "excuteStrategy":6332,
+    "excuteDate":3262,
+    "excuteTime":"pw09n9",
+    "remark":"liinse",
+    "lastExcuteHost":"x9xwe9",
+    "lastExcuteTime":"2023-03-24",
+    "interimExcuteStatus":3469,
+    "createUserName":"vs74r1"
+}
+
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;&emsp;name|String|浠诲姟鍚嶇О
+&emsp;&emsp;taskKey|String|浠诲姟鍏抽敭瀛楋紝鍖哄垎浠诲姟鎵ц娴佺▼
+&emsp;&emsp;status|Integer|浠诲姟鐘舵€侊紝0锛氭湭鍚姩锛�1锛氭墽琛屼腑锛岄粯璁�0
+&emsp;&emsp;excuteService|String|浠诲姟鎵ц鏈嶅姟
+&emsp;&emsp;excuteParam|String|浠诲姟鎵ц鍙傛暟
+&emsp;&emsp;excuteHost|String|浠诲姟鎵ц涓绘満锛屼负绌鸿〃绀轰笉闄愬埗浠诲姟鐨勬墽琛屼富鏈猴紝澶氫釜鐢ㄩ€楀彿鍒嗛殧
+&emsp;&emsp;excuteStrategy|Integer|鎵ц绛栫暐锛�1锛氭寜鏃ワ紝2锛氭寜鍛紝3锛氭寜鏈堬紝4锛氭寜闂撮殧鏃堕棿锛岄粯璁�1
+&emsp;&emsp;excuteDate|Long|鎵ц鏃ユ湡锛屾寜鏃ワ細鍒欎负0锛涙寜鍛細鍒欎负1-7锛涙寜鏈堬細鍒欎负锛�1-31锛涙寜闂撮殧鏃堕棿锛氬垯涓洪棿闅旀椂闂达紝鍗曚綅锛氱锛涢粯璁�0
+&emsp;&emsp;excuteTime|String|鎵ц鏃堕棿锛屾牸寮忥細HH:mm锛岄粯璁わ細00:00
+&emsp;&emsp;remark|String|澶囨敞
+&emsp;&emsp;lastExcuteHost|String|鏈€鍚庢墽琛屼富鏈�
+&emsp;&emsp;lastExcuteTime|Date|鏈€鍚庢墽琛屾椂闂�
+&emsp;&emsp;interimExcuteStatus|Integer|涓存椂鎵ц鐘舵€侊紝0锛氭湭鍚敤锛�1锛氱珛鍗虫墽琛屽苟淇濈暀锛�2锛氱珛鍗虫墽琛屽苟鍒犻櫎锛岄粯璁�0
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;&emsp;createUserName|String|鍒涘缓鐢ㄦ埛鍚嶇О
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{}
+    }
+}
+
+```
+
+### 鍒犻櫎浠诲姟淇℃伅
+
+**璇锋眰URL:** task/delete
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎浠诲姟淇℃伅
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|String|鏄瘄鏁扮粍
+
+**璇锋眰鏍蜂緥:**
+```
+    http://localhost:8080/task/delete?id=1&id=2'
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code":1,
+	"msg":"鎴愬姛"
+}
+
+```
+
+
+## 鎿嶄綔鏃ュ織
+
+### 鏌ヨ鎿嶄綔鏃ュ織鍒楄〃
+
+**璇锋眰URL:** oper/log/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ鎿嶄綔鏃ュ織
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+page|Integer|鍚褰撳墠椤�
+size|Integer|鍚姣忛〉鏉℃暟锛屽€间负-1锛屾煡璇㈡墍鏈夎褰�
+
+**璇锋眰鏍蜂緥:**
+```
+  {
+        "page":1,
+        "size":10
+  }
+
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О|鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;per_page|Integer|姣忛〉鏉℃暟
+&emsp;total|Integer|鎬绘潯鏁�
+&emsp;last_page|Integer|鎬婚〉鏁�
+&emsp;current_page|Integer|褰撳墠椤�
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;&emsp;platformMark|String|骞冲彴鏍囪瘑
+&emsp;&emsp;userId|Long|鐢ㄦ埛id
+&emsp;&emsp;userName|String|鐢ㄦ埛鍚嶇О
+&emsp;&emsp;loginName|String|鐢ㄦ埛鐧诲綍鍚�
+&emsp;&emsp;requestUrl|String|璇锋眰鍦板潃
+&emsp;&emsp;content|String|鎿嶄綔鍐呭锛岃褰曟搷浣滃叿浣撲俊鎭紝濡備慨鏀瑰墠淇敼鎴栫殑鏁版嵁
+&emsp;&emsp;ip|String|鎿嶄綔IP鍦板潃
+&emsp;&emsp;logDate|Date|鎿嶄綔鏃堕棿
+&emsp;&emsp;operType|Integer|鎿嶄綔绫诲瀷锛�0锛氭柊澧烇紝1锛氫慨鏀癸紝2锛氬垹闄�
+dict|object|瀛楀吀瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code":1,
+    "data":{
+    }
+}
+```
+
+### 鏌ョ湅鎿嶄綔鏃ュ織
+
+**璇锋眰URL:** oper/log/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅鎿嶄綔鏃ュ織锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|Long|鏄瘄ID
+
+**璇锋眰鏍蜂緥:**
+```
+    http://localhost/oper/log/info?id=549
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:-------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;platformMark|String|骞冲彴鏍囪瘑
+&emsp;userId|Long|鐢ㄦ埛id
+&emsp;userName|String|鐢ㄦ埛鍚嶇О
+&emsp;loginName|String|鐢ㄦ埛鐧诲綍鍚�
+&emsp;requestUrl|String|璇锋眰鍦板潃
+&emsp;content|String|鎿嶄綔鍐呭锛岃褰曟搷浣滃叿浣撲俊鎭紝濡備慨鏀瑰墠淇敼鎴栫殑鏁版嵁
+&emsp;ip|String|鎿嶄綔IP鍦板潃
+&emsp;logDate|Date|鎿嶄綔鏃堕棿
+&emsp;operType|Integer|鎿嶄綔绫诲瀷锛�0锛氭柊澧烇紝1锛氫慨鏀癸紝2锛氬垹闄�
+dict|object|瀛楀吀瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code": 1,
+    "data": {
+            "id":3164,
+            "platformMark":"bndjlq",
+            "userId":2769,
+            "userName":"t6wf13",
+            "loginName":"o3jujh",
+            "requestUrl":"bmsm3m",
+            "content":"o7cstx",
+            "ip":"vyh59j",
+            "logDate":"2023-03-24",
+            "operType":96
+        }
+}
+```
+
+
+
+## 妯″潡
+
+### 鏌ヨ妯″潡鍒楄〃
+
+**璇锋眰URL:** model/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ妯″潡
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+modelName|String|妯″潡鍚嶇О|鍚-
+modelCode|String|妯″潡缂栫爜|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "modelName":"d515gr",
+        "modelCode":"at9ccv",
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;modelName|String|妯″潡鍚嶇О|-
+&emsp;&emsp;modelCode|String|妯″潡缂栫爜|-
+&emsp;&emsp;modelIcon|String|妯″潡鍥炬爣|-
+&emsp;&emsp;modelUrl|String|妯″潡鍦板潃|-
+&emsp;&emsp;remark|String|澶囨敞淇℃伅|-
+&emsp;&emsp;sort|Integer|鎺掑簭|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+
+### 鏌ョ湅妯″潡
+
+**璇锋眰URL:** model/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅妯″潡锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/model/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;modelName|String|妯″潡鍚嶇О|-
+&emsp;modelCode|String|妯″潡缂栫爜|-
+&emsp;modelIcon|String|妯″潡鍥炬爣|-
+&emsp;modelUrl|String|妯″潡鍦板潃|-
+&emsp;remark|String|澶囨敞淇℃伅|-
+&emsp;sort|Integer|鎺掑簭|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+
+### 淇濆瓨鏇存柊妯″潡
+
+**璇锋眰URL:** model/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂版ā鍧楋細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+modelName|String|妯″潡鍚嶇О|鏄瘄-
+modelCode|String|妯″潡缂栫爜|鏄瘄-
+modelIcon|String|妯″潡鍥炬爣|鏄瘄-
+modelUrl|String|妯″潡鍦板潃|鏄瘄-
+remark|String|澶囨敞淇℃伅|鏄瘄-
+sort|Integer|鎺掑簭|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "modelName":"30pd0x",
+    "modelCode":"smt1nv",
+    "modelIcon":"7eoui4",
+    "modelUrl":"cz11cs",
+    "remark":"ifqtoy",
+    "sort":8069,
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;modelName|String|妯″潡鍚嶇О|-
+&emsp;&emsp;modelCode|String|妯″潡缂栫爜|-
+&emsp;&emsp;modelIcon|String|妯″潡鍥炬爣|-
+&emsp;&emsp;modelUrl|String|妯″潡鍦板潃|-
+&emsp;&emsp;remark|String|澶囨敞淇℃伅|-
+&emsp;&emsp;sort|Integer|鎺掑簭|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+
+### 鍒犻櫎妯″潡
+
+**璇锋眰URL:** model/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎妯″潡
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/model/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 鍖哄煙
+
+### 鏌ヨ鍖哄煙鍒楄〃
+
+**璇锋眰URL:** area/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ鍖哄煙
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+name|String|鍖哄煙鍚嶇О|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "name":"zt2h08",
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;ancestors|String|绁栫骇鍒楄〃锛岄€楀彿鍒嗛殧|-
+&emsp;&emsp;name|String|鍖哄煙鍚嶇О|-
+&emsp;&emsp;iid|String|涓€浣撳寲鐨処D鍙穦-
+&emsp;&emsp;parentId|String|涓€浣撳寲鐨勭埗id|-
+&emsp;&emsp;haveSonArea|String|鏄惁鏈変笅绾у尯鍩燂紙True.鏄紝False.鍚︼級|-
+&emsp;&emsp;haveSonDept|String|鏄惁鏈変笅绾ч儴闂紙True.鏄紝False.鍚︼級|-
+&emsp;&emsp;haveGetDept|String|鏄惁鑾峰彇閮ㄩ棬锛坱rue.鏄紝false.鍚︼級|-
+&emsp;&emsp;haveGetMatterList|String|鏄惁鑾峰彇浜嬮」鍒楄〃锛坱rue.鏄紝false.鍚︼級|-
+&emsp;&emsp;areaCode|String|鍖哄煙缂栫爜|-
+&emsp;&emsp;areaLevel|Integer|鍖哄煙绛夌骇(1.鐪侊紝2.鍦板競宸烇紝3.鍖哄幙锛�4.琛楅亾锛�5.绀惧尯)|-
+&emsp;&emsp;shortName|String|鍚嶇О绠€绉皘-
+&emsp;&emsp;domain|String|璁块棶鍦板潃|-
+&emsp;&emsp;status|Integer|鍖哄煙鐘舵€� (0.鍋滅敤锛�1.姝e父)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;haveSonArea|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;haveSonDept|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;haveGetDept|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;haveGetMatterList|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;areaLevel|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;status|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅鍖哄煙
+
+**璇锋眰URL:** area/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅鍖哄煙锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/area/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;ancestors|String|绁栫骇鍒楄〃锛岄€楀彿鍒嗛殧|-
+&emsp;name|String|鍖哄煙鍚嶇О|-
+&emsp;iid|String|涓€浣撳寲鐨処D鍙穦-
+&emsp;parentId|String|涓€浣撳寲鐨勭埗id|-
+&emsp;haveSonArea|String|鏄惁鏈変笅绾у尯鍩燂紙True.鏄紝False.鍚︼級|-
+&emsp;haveSonDept|String|鏄惁鏈変笅绾ч儴闂紙True.鏄紝False.鍚︼級|-
+&emsp;haveGetDept|String|鏄惁鑾峰彇閮ㄩ棬锛坱rue.鏄紝false.鍚︼級|-
+&emsp;haveGetMatterList|String|鏄惁鑾峰彇浜嬮」鍒楄〃锛坱rue.鏄紝false.鍚︼級|-
+&emsp;areaCode|String|鍖哄煙缂栫爜|-
+&emsp;areaLevel|Integer|鍖哄煙绛夌骇(1.鐪侊紝2.鍦板競宸烇紝3.鍖哄幙锛�4.琛楅亾锛�5.绀惧尯)|-
+&emsp;shortName|String|鍚嶇О绠€绉皘-
+&emsp;domain|String|璁块棶鍦板潃|-
+&emsp;status|Integer|鍖哄煙鐘舵€� (0.鍋滅敤锛�1.姝e父)|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;haveSonArea|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;haveSonDept|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;haveGetDept|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;haveGetMatterList|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;areaLevel|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;status|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+
+### 鏌ョ湅鍖哄煙瀛愪俊鎭�
+
+**璇锋眰URL:** area/getListByParentId
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅鍖哄煙锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+parentId|String|鍖哄煙鏍戠埗id|鏄瘄0涓烘爲鐨勯《灞傝妭鐐�
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/area/getListByParentId?parentId=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;data|object|鏁版嵁瀵硅薄|-
+&emsp;&emsp;id|String|鑺傜偣ID|-
+&emsp;&emsp;label|String|鑺傜偣鍚嶇О|-
+&emsp;&emsp;areaCode|String|鍖哄煙缂栫爜|-
+&emsp;&emsp;isLeaf|String|鏄惁鍙跺瓙鑺傜偣|-
+&emsp;&emsp;type|String|鑺傜偣绫诲瀷|type='site'琛ㄧず绔欑偣锛宼ype='area'琛ㄧず鍖哄煙
+&emsp;&emsp;icon|String|鍥炬爣|-
+&emsp;&emsp;children|Arrays|瀛愯妭鐐箌-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+
+### 鑾峰彇鎵€鏈夊尯鍩熶俊鎭�
+
+**璇锋眰URL:** area/treeselect
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 杩斿洖鎵€鏈夊尯鍩熶俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/area/treeselect
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;data|Arrays|鏁扮粍瀵硅薄|-
+&emsp;&emsp;id|String|鑺傜偣ID|-
+&emsp;&emsp;label|String|鑺傜偣鍚嶇О|-
+&emsp;&emsp;areaCode|String|鍖哄煙缂栫爜|-
+&emsp;&emsp;isLeaf|String|鏄惁鍙跺瓙鑺傜偣|-
+&emsp;&emsp;type|String|鑺傜偣绫诲瀷|-
+&emsp;&emsp;icon|String|鍥炬爣|-
+&emsp;&emsp;children|Arrays|瀛愯妭鐐箌-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":9986,
+
+        }
+}
+```
+
+### 鍖哄煙淇濆瓨涓庢洿鏂�
+
+**璇锋眰URL:** area/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂板尯鍩燂細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+ancestors|String|绁栫骇鍒楄〃锛岄€楀彿鍒嗛殧|鏄瘄-
+name|String|鍖哄煙鍚嶇О|鏄瘄-
+iid|String|涓€浣撳寲鐨処D鍙穦鏄瘄-
+parentId|String|涓€浣撳寲鐨勭埗id|鏄瘄-
+haveSonArea|String|鏄惁鏈変笅绾у尯鍩燂紙True.鏄紝False.鍚︼級|鏄瘄-
+haveSonDept|String|鏄惁鏈変笅绾ч儴闂紙True.鏄紝False.鍚︼級|鏄瘄-
+haveGetDept|String|鏄惁鑾峰彇閮ㄩ棬锛坱rue.鏄紝false.鍚︼級|鏄瘄-
+haveGetMatterList|String|鏄惁鑾峰彇浜嬮」鍒楄〃锛坱rue.鏄紝false.鍚︼級|鏄瘄-
+areaCode|String|鍖哄煙缂栫爜|鏄瘄-
+areaLevel|Integer|鍖哄煙绛夌骇(1.鐪侊紝2.鍦板競宸烇紝3.鍖哄幙锛�4.琛楅亾锛�5.绀惧尯)|鏄瘄-
+shortName|String|鍚嶇О绠€绉皘鏄瘄-
+domain|String|璁块棶鍦板潃|鏄瘄-
+status|Integer|鍖哄煙鐘舵€� (0.鍋滅敤锛�1.姝e父)|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;ancestors|String|绁栫骇鍒楄〃锛岄€楀彿鍒嗛殧|-
+&emsp;&emsp;name|String|鍖哄煙鍚嶇О|-
+&emsp;&emsp;iid|String|涓€浣撳寲鐨処D鍙穦-
+&emsp;&emsp;parentId|String|涓€浣撳寲鐨勭埗id|-
+&emsp;&emsp;haveSonArea|String|鏄惁鏈変笅绾у尯鍩燂紙True.鏄紝False.鍚︼級|-
+&emsp;&emsp;haveSonDept|String|鏄惁鏈変笅绾ч儴闂紙True.鏄紝False.鍚︼級|-
+&emsp;&emsp;haveGetDept|String|鏄惁鑾峰彇閮ㄩ棬锛坱rue.鏄紝false.鍚︼級|-
+&emsp;&emsp;haveGetMatterList|String|鏄惁鑾峰彇浜嬮」鍒楄〃锛坱rue.鏄紝false.鍚︼級|-
+&emsp;&emsp;areaCode|String|鍖哄煙缂栫爜|-
+&emsp;&emsp;areaLevel|Integer|鍖哄煙绛夌骇(1.鐪侊紝2.鍦板競宸烇紝3.鍖哄幙锛�4.琛楅亾锛�5.绀惧尯)|-
+&emsp;&emsp;shortName|String|鍚嶇О绠€绉皘-
+&emsp;&emsp;domain|String|璁块棶鍦板潃|-
+&emsp;&emsp;status|Integer|鍖哄煙鐘舵€� (0.鍋滅敤锛�1.姝e父)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+
+### 鍒犻櫎鍖哄煙
+
+**璇锋眰URL:** area/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎鍖哄煙
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/area/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 绔欑偣
+
+### 鏌ヨ绔欑偣鍒楄〃
+
+**璇锋眰URL:** site/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ绔欑偣
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+siteName|String|绔欑偣鍚嶇О|鍚-
+areaID|String|鍖哄煙Id|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "siteName":"pmir1h",
+        "areaID":"kzm70p",
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;&emsp;siteCode|String|绔欑偣缂栧彿|-
+&emsp;&emsp;areaID|String|鍖哄煙Id|-
+&emsp;&emsp;areaCode|String|鍖哄煙缂栧彿|-
+&emsp;&emsp;areaName|String|鍖哄煙鍚嶇О|-
+&emsp;&emsp;proCode|String|鐪佺紪鐮亅-
+&emsp;&emsp;cityCode|String|甯傜紪鐮亅-
+&emsp;&emsp;districtCode|String|鍖虹紪鐮亅-
+&emsp;&emsp;siteIp|String|绔欑偣鏈嶅姟鍣╥p|-
+&emsp;&emsp;sitePort|String|绔欑偣鏈嶅姟鍣ㄧ鍙-
+&emsp;&emsp;longitude|String|缁忓害|-
+&emsp;&emsp;latitude|String|绾害|-
+&emsp;&emsp;siteTel|String|涓績鑱旂郴鐢佃瘽|-
+&emsp;&emsp;detailAddress|String|涓績璇︾粏鍦板潃|-
+&emsp;&emsp;siteRemark|String|涓績浠嬬粛|-
+&emsp;&emsp;amWorkStartTime|Date|涓婂崍涓婄彮寮€濮嬫椂闂磡-
+&emsp;&emsp;amWorkEndTime|Date|涓婂崍涓婄彮缁撴潫鏃堕棿|-
+&emsp;&emsp;pmWorkStartTime|Date|涓嬪崍涓婄彮寮€濮嬫椂闂磡-
+&emsp;&emsp;pmWorkEndTime|Date|涓嬪崍涓婄彮缁撴潫鏃堕棿|-
+&emsp;&emsp;workday1|Integer|鍛ㄤ竴 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;workday2|Integer|鍛ㄤ簩 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;workday3|Integer|鍛ㄤ笁 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;workday4|Integer|鍛ㄥ洓 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;workday5|Integer|鍛ㄤ簲 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;workday6|Integer|鍛ㄥ叚 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;workday7|Integer|鍛ㄦ棩 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;level|Integer|妤煎眰|-
+&emsp;&emsp;building|Integer|妤兼爧|-
+&emsp;&emsp;modelIds|String|閮ㄧ讲妯″潡锛岄€楀彿鍒嗛殧|-
+&emsp;&emsp;logoPath|String|璁惧logo鍦板潃
+&emsp;&emsp;logoFullPath|String|璁惧logo鍏ㄥ湴鍧€
+&emsp;&emsp;englishName|String|绔欑偣鑻辨枃鍚嶇О
+&emsp;&emsp;leadingOfficial|String|璐熻矗浜�
+&emsp;&emsp;leadingOfficialTelephone|String|鑱旂郴鐢佃瘽
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;workday1|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;workday2|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;workday3|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;workday4|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;workday5|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;workday6|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;workday7|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅绔欑偣
+
+**璇锋眰URL:** site/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅绔欑偣锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/site/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;siteCode|String|绔欑偣缂栧彿|-
+&emsp;areaID|String|鍖哄煙Id|-
+&emsp;areaCode|String|鍖哄煙缂栧彿|-
+&emsp;areaName|String|鍖哄煙鍚嶇О|-
+&emsp;proCode|String|鐪佺紪鐮亅-
+&emsp;cityCode|String|甯傜紪鐮亅-
+&emsp;districtCode|String|鍖虹紪鐮亅-
+&emsp;siteIp|String|绔欑偣鏈嶅姟鍣╥p|-
+&emsp;sitePort|String|绔欑偣鏈嶅姟鍣ㄧ鍙-
+&emsp;longitude|String|缁忓害|-
+&emsp;latitude|String|绾害|-
+&emsp;siteTel|String|涓績鑱旂郴鐢佃瘽|-
+&emsp;detailAddress|String|涓績璇︾粏鍦板潃|-
+&emsp;siteRemark|String|涓績浠嬬粛|-
+&emsp;amWorkStartTime|Date|涓婂崍涓婄彮寮€濮嬫椂闂磡-
+&emsp;amWorkEndTime|Date|涓婂崍涓婄彮缁撴潫鏃堕棿|-
+&emsp;pmWorkStartTime|Date|涓嬪崍涓婄彮寮€濮嬫椂闂磡-
+&emsp;pmWorkEndTime|Date|涓嬪崍涓婄彮缁撴潫鏃堕棿|-
+&emsp;workday1|Integer|鍛ㄤ竴 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;workday2|Integer|鍛ㄤ簩 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;workday3|Integer|鍛ㄤ笁 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;workday4|Integer|鍛ㄥ洓 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;workday5|Integer|鍛ㄤ簲 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;workday6|Integer|鍛ㄥ叚 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;workday7|Integer|鍛ㄦ棩 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;level|Integer|妤煎眰|-
+&emsp;building|Integer|妤兼爧|-
+&emsp;logoPath|String|璁惧logo鍦板潃
+&emsp;logoFullPath|String|璁惧logo鍏ㄥ湴鍧€
+&emsp;englishName|String|绔欑偣鑻辨枃鍚嶇О
+&emsp;modelIds|String|閮ㄧ讲妯″潡锛岄€楀彿鍒嗛殧|-
+&emsp;leadingOfficial|String|璐熻矗浜�
+&emsp;leadingOfficialTelephone|String|鑱旂郴鐢佃瘽
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;workday1|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;workday2|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;workday3|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;workday4|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;workday5|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;workday6|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;workday7|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+
+### 淇濆瓨鏇存柊绔欑偣
+
+**璇锋眰URL:** site/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂扮珯鐐癸細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+siteName|String|绔欑偣鍚嶇О|鏄瘄-
+siteCode|String|绔欑偣缂栧彿|鏄瘄-
+areaID|String|鍖哄煙Id|鏄瘄-
+areaCode|String|鍖哄煙缂栧彿|鏄瘄-
+areaName|String|鍖哄煙鍚嶇О|鏄瘄-
+proCode|String|鐪佺紪鐮亅鏄瘄-
+cityCode|String|甯傜紪鐮亅鏄瘄-
+districtCode|String|鍖虹紪鐮亅鏄瘄-
+siteIp|String|绔欑偣鏈嶅姟鍣╥p|鏄瘄-
+sitePort|String|绔欑偣鏈嶅姟鍣ㄧ鍙鏄瘄-
+longitude|String|缁忓害|鏄瘄-
+latitude|String|绾害|鏄瘄-
+siteTel|String|涓績鑱旂郴鐢佃瘽|鏄瘄-
+detailAddress|String|涓績璇︾粏鍦板潃|鏄瘄-
+siteRemark|String|涓績浠嬬粛|鏄瘄-
+amWorkStartTime|Date|涓婂崍涓婄彮寮€濮嬫椂闂磡鏄瘄-
+amWorkEndTime|Date|涓婂崍涓婄彮缁撴潫鏃堕棿|鏄瘄-
+pmWorkStartTime|Date|涓嬪崍涓婄彮寮€濮嬫椂闂磡鏄瘄-
+pmWorkEndTime|Date|涓嬪崍涓婄彮缁撴潫鏃堕棿|鏄瘄-
+workday1|Integer|鍛ㄤ竴 (1.涓婄彮锛�0.涓嶄笂)|鏄瘄-
+workday2|Integer|鍛ㄤ簩 (1.涓婄彮锛�0.涓嶄笂)|鏄瘄-
+workday3|Integer|鍛ㄤ笁 (1.涓婄彮锛�0.涓嶄笂)|鏄瘄-
+workday4|Integer|鍛ㄥ洓 (1.涓婄彮锛�0.涓嶄笂)|鏄瘄-
+workday5|Integer|鍛ㄤ簲 (1.涓婄彮锛�0.涓嶄笂)|鏄瘄-
+workday6|Integer|鍛ㄥ叚 (1.涓婄彮锛�0.涓嶄笂)|鏄瘄-
+workday7|Integer|鍛ㄦ棩 (1.涓婄彮锛�0.涓嶄笂)|鏄瘄-
+level|Integer|妤煎眰|鏄瘄-
+building|Integer|妤兼爧|鏄瘄-
+logoPath|String|鏄瘄璁惧logo鍦板潃|-
+englishName|String|鏄瘄绔欑偣鑻辨枃鍚嶇О|-
+leadingOfficial|String|鏄瘄璐熻矗浜簗-
+leadingOfficialTelephone|String|鏄瘄鑱旂郴鐢佃瘽|-
+modelIds|String|閮ㄧ讲妯″潡锛岄€楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;&emsp;siteCode|String|绔欑偣缂栧彿|-
+&emsp;&emsp;areaID|String|鍖哄煙Id|-
+&emsp;&emsp;areaCode|String|鍖哄煙缂栧彿|-
+&emsp;&emsp;areaName|String|鍖哄煙鍚嶇О|-
+&emsp;&emsp;proCode|String|鐪佺紪鐮亅-
+&emsp;&emsp;cityCode|String|甯傜紪鐮亅-
+&emsp;&emsp;districtCode|String|鍖虹紪鐮亅-
+&emsp;&emsp;siteIp|String|绔欑偣鏈嶅姟鍣╥p|-
+&emsp;&emsp;sitePort|String|绔欑偣鏈嶅姟鍣ㄧ鍙-
+&emsp;&emsp;longitude|String|缁忓害|-
+&emsp;&emsp;latitude|String|绾害|-
+&emsp;&emsp;siteTel|String|涓績鑱旂郴鐢佃瘽|-
+&emsp;&emsp;detailAddress|String|涓績璇︾粏鍦板潃|-
+&emsp;&emsp;siteRemark|String|涓績浠嬬粛|-
+&emsp;&emsp;amWorkStartTime|Date|涓婂崍涓婄彮寮€濮嬫椂闂磡-
+&emsp;&emsp;amWorkEndTime|Date|涓婂崍涓婄彮缁撴潫鏃堕棿|-
+&emsp;&emsp;pmWorkStartTime|Date|涓嬪崍涓婄彮寮€濮嬫椂闂磡-
+&emsp;&emsp;pmWorkEndTime|Date|涓嬪崍涓婄彮缁撴潫鏃堕棿|-
+&emsp;&emsp;workday1|Integer|鍛ㄤ竴 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;workday2|Integer|鍛ㄤ簩 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;workday3|Integer|鍛ㄤ笁 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;workday4|Integer|鍛ㄥ洓 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;workday5|Integer|鍛ㄤ簲 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;workday6|Integer|鍛ㄥ叚 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;workday7|Integer|鍛ㄦ棩 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;level|Integer|妤煎眰|-
+&emsp;&emsp;building|Integer|妤兼爧|-
+&emsp;&emsp;modelIds|String|閮ㄧ讲妯″潡锛岄€楀彿鍒嗛殧|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+
+```
+
+### 鍒犻櫎绔欑偣
+
+**璇锋眰URL:** site/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎绔欑偣
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/site/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+### 鏋勫缓绔欑偣鏍�
+
+**璇锋眰URL:** site/siteTree
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏋勫缓绔欑偣鏍�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+
+**璇锋眰鏍蜂緥:**
+
+```
+{}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|Object|鏁版嵁|-
+&emsp;siteTree|List|鏁扮粍|-
+&emsp;&emsp;id|String|鑺傜偣ID|-
+&emsp;&emsp;label|String|鑺傜偣鍚嶇О|-
+&emsp;&emsp;areaCode|String|鍖哄煙缂栫爜|-
+&emsp;&emsp;type|String|鑺傜偣绫诲瀷|-
+&emsp;&emsp;children|List|瀛愯妭鐐箌-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+### 鍚屾绔欑偣鐩稿叧浜嬮」
+
+**璇锋眰URL:** site/syncGovMatterBySiteId
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍚屾绔欑偣鐩稿叧浜嬮」
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+id|Long|绔欑偣id|鏄瘄-
+**璇锋眰鏍蜂緥:**
+
+```
+{鈥渋d鈥�:3}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|Object|鏁版嵁|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+### 鏍规嵁鍖哄煙鏌ヨ绔欑偣鍒楄〃
+
+**璇锋眰URL:** site/getFlatSitesByAreaCode
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏍规嵁鍖哄煙鏌ヨ绔欑偣鍒楄〃
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+areaCode|String|鍖哄煙缂栫爜|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "areaCode":"510105521000"
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;&emsp;siteCode|String|绔欑偣缂栧彿|-
+&emsp;&emsp;areaID|String|鍖哄煙Id|-
+&emsp;&emsp;areaCode|String|鍖哄煙缂栧彿|-
+&emsp;&emsp;areaName|String|鍖哄煙鍚嶇О|-
+&emsp;&emsp;proCode|String|鐪佺紪鐮亅-
+&emsp;&emsp;cityCode|String|甯傜紪鐮亅-
+&emsp;&emsp;districtCode|String|鍖虹紪鐮亅-
+&emsp;&emsp;siteIp|String|绔欑偣鏈嶅姟鍣╥p|-
+&emsp;&emsp;sitePort|String|绔欑偣鏈嶅姟鍣ㄧ鍙-
+&emsp;&emsp;longitude|String|缁忓害|-
+&emsp;&emsp;latitude|String|绾害|-
+&emsp;&emsp;siteTel|String|涓績鑱旂郴鐢佃瘽|-
+&emsp;&emsp;detailAddress|String|涓績璇︾粏鍦板潃|-
+&emsp;&emsp;siteRemark|String|涓績浠嬬粛|-
+&emsp;&emsp;amWorkStartTime|Date|涓婂崍涓婄彮寮€濮嬫椂闂磡-
+&emsp;&emsp;amWorkEndTime|Date|涓婂崍涓婄彮缁撴潫鏃堕棿|-
+&emsp;&emsp;pmWorkStartTime|Date|涓嬪崍涓婄彮寮€濮嬫椂闂磡-
+&emsp;&emsp;pmWorkEndTime|Date|涓嬪崍涓婄彮缁撴潫鏃堕棿|-
+&emsp;&emsp;workday1|Integer|鍛ㄤ竴 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;workday2|Integer|鍛ㄤ簩 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;workday3|Integer|鍛ㄤ笁 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;workday4|Integer|鍛ㄥ洓 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;workday5|Integer|鍛ㄤ簲 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;workday6|Integer|鍛ㄥ叚 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;workday7|Integer|鍛ㄦ棩 (1.涓婄彮锛�0.涓嶄笂)|-
+&emsp;&emsp;level|Integer|妤煎眰|-
+&emsp;&emsp;building|Integer|妤兼爧|-
+&emsp;&emsp;modelIds|String|閮ㄧ讲妯″潡锛岄€楀彿鍒嗛殧|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;workday1|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;workday2|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;workday3|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;workday4|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;workday5|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;workday6|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;workday7|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+    }
+}
+```
+
+
+### 鏍规嵁绔欑偣鏌ヨ鍖哄煙绔欑偣瀛愬垪琛�
+
+**璇锋眰URL:** site/getAreaSitesBySite
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏍规嵁绔欑偣鏌ヨ鍖哄煙绔欑偣瀛愬垪琛�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+areaName|String|鍖哄煙鍚嶇О|鏄瘄-
+siteName|String|绔欑偣鍚嶇О|鍚鍓嶅悗娣诲姞%%鍙繘琛屾ā绯婃煡鎵�
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "areaName":"瀹滃甯�",
+        "siteName":"%楂樺幙%",
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;areaName|String|鍖哄煙鍚嶇О|-
+&emsp;&emsp;areaCode|String|鍖哄煙缂栫爜|-
+&emsp;&emsp;siteList|array|绔欑偣鍒楄〃|鏁扮粍
+&emsp;&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;&emsp;&emsp;siteCode|String|绔欑偣缂栧彿|-
+&emsp;&emsp;&emsp;areaID|String|鍖哄煙Id|-
+&emsp;&emsp;&emsp;areaCode|String|鍖哄煙缂栧彿|-
+&emsp;&emsp;&emsp;areaName|String|鍖哄煙鍚嶇О|-
+&emsp;&emsp;&emsp;proCode|String|鐪佺紪鐮亅-
+&emsp;&emsp;&emsp;cityCode|String|甯傜紪鐮亅-
+&emsp;&emsp;&emsp;districtCode|String|鍖虹紪鐮亅-
+&emsp;&emsp;&emsp;siteIp|String|绔欑偣鏈嶅姟鍣╥p|-
+&emsp;&emsp;&emsp;sitePort|String|绔欑偣鏈嶅姟鍣ㄧ鍙-
+&emsp;&emsp;&emsp;longitude|String|缁忓害|-
+&emsp;&emsp;&emsp;latitude|String|绾害|-
+&emsp;&emsp;&emsp;siteTel|String|涓績鑱旂郴鐢佃瘽|-
+&emsp;&emsp;&emsp;detailAddress|String|涓績璇︾粏鍦板潃|-
+&emsp;&emsp;&emsp;siteRemark|String|涓績浠嬬粛|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":[{areaName:"缈犲睆鍖�",siteList:[{siteName:'aaa'},{siteName:'bbbb'}]}]
+}
+```
+
+## 绔欑偣浜嬮」
+
+### 鏌ヨ绔欑偣浜嬮」鍒楄〃
+
+**璇锋眰URL:** site/matter/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ绔欑偣涓庝簨椤瑰垪琛�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷| 澶囨敞   |蹇呭~|鍏跺畠
+---|---|------|---|---
+page|Integer| 褰撳墠椤�  |鍚-
+size|Integer| 姣忛〉鏉℃暟 |鍚-
+siteId|Long| 绔欑偣ID |鍚-
+siteName|String| 绔欑偣鍚嶇О |鍚-
+matterId|Long| 浜嬮」ID |鍚-
+matterName|String| 浜嬮」鍚嶇О |鍚-
+hot|Integer| 鐑棬   |鍚-
+display|Integer| 鏄剧ず   |鍚-
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "siteId":9144,
+        "siteName":"o68yk6",
+        "matterId":2909,
+        "matterName":"oz1oig",
+        "hot":0,
+        "display":1,
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;siteId|Long|绔欑偣ID|-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;&emsp;matterId|Long|浜嬮」ID|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;&emsp;deptId|Long|閮ㄩ棬ID|-
+&emsp;&emsp;deptName|String|閮ㄩ棬鍚嶇О|-
+dict|object|瀛楀吀瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅绔欑偣浜嬮」
+
+**璇锋眰URL:** site/matter/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅绔欑偣浜嬮」锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/site/matter/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;siteId|Long|绔欑偣ID|-
+&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;matterId|Long|浜嬮」ID|-
+&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;deptId|Long|閮ㄩ棬ID|-
+&emsp;deptName|String|閮ㄩ棬鍚嶇О|-
+dict|object|瀛楀吀瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+
+### 淇濆瓨鏇存柊绔欑偣浜嬮」
+
+**璇锋眰URL:** site/matter/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂扮珯鐐逛簨椤癸細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+siteId|Long|绔欑偣ID|鏄瘄-
+siteName|String|绔欑偣鍚嶇О|鏄瘄-
+matterId|Long|浜嬮」ID|鏄瘄-
+matterName|String|浜嬮」鍚嶇О|鏄瘄-
+deptId|Long|閮ㄩ棬ID|鏄瘄-
+deptName|String|閮ㄩ棬鍚嶇О|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "siteId":6033,
+    "siteName":"n0klqr",
+    "matterId":7292,
+    "matterName":"3c3brx",
+    "deptId":880,
+    "deptName":"m8yw73"
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;siteId|Long|绔欑偣ID|-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;&emsp;matterId|Long|浜嬮」ID|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;&emsp;deptId|Long|閮ㄩ棬ID|-
+&emsp;&emsp;deptName|String|閮ㄩ棬鍚嶇О|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎绔欑偣浜嬮」
+
+**璇锋眰URL:** site/matter/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎绔欑偣浜嬮」
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/site/matter/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 涓婚
+
+### 鏌ヨ涓婚鍒楄〃
+
+**璇锋眰URL:** site/theme/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ涓婚
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+page|Integer|鍚褰撳墠椤�
+size|Integer|鍚姣忛〉鏉℃暟锛屽€间负-1锛屾煡璇㈡墍鏈夎褰�
+siteId|Long|鍚绔欑偣id
+userType|String|鍚鏈嶅姟绫诲瀷缂栧彿,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+themeCode|String|鍚涓婚缂栧彿,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+themeName|String|鍚涓婚鍚嶇О,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+
+**璇锋眰鏍蜂緥:**
+```
+  {
+        "siteId":9425,
+        "userType":"6mu82c",
+        "themeCode":"w7vxfs",
+        "themeName":"a9jq7j",
+        "page":1,
+        "size":10
+  }
+
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О|鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;per_page|Integer|姣忛〉鏉℃暟
+&emsp;total|Integer|鎬绘潯鏁�
+&emsp;last_page|Integer|鎬婚〉鏁�
+&emsp;current_page|Integer|褰撳墠椤�
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|id鍙�
+&emsp;&emsp;siteId|Long|绔欑偣id
+&emsp;&emsp;userType|String|鏈嶅姟绫诲瀷缂栧彿
+&emsp;&emsp;themeCode|String|涓婚缂栧彿
+&emsp;&emsp;themeName|String|涓婚鍚嶇О
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛id
+&emsp;&emsp;updateTime|Date|鏇存柊鏃堕棿
+dict|object|瀛楀吀瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code":1,
+    "data":{
+    }
+}
+```
+
+### 鏌ョ湅涓婚
+
+**璇锋眰URL:** site/theme/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅涓婚锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|Long|鏄瘄ID
+
+**璇锋眰鏍蜂緥:**
+```
+    http://localhost/site/theme/info?id=549
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:-------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|id鍙�
+&emsp;siteId|Long|绔欑偣id
+&emsp;userType|String|鏈嶅姟绫诲瀷缂栧彿
+&emsp;themeCode|String|涓婚缂栧彿
+&emsp;themeName|String|涓婚鍚嶇О
+&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛id
+&emsp;updateTime|Date|鏇存柊鏃堕棿
+dict|object|瀛楀吀瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code": 1,
+    "data": {
+            "id":539,
+            "siteId":4859,
+            "userType":"ewybhk",
+            "themeCode":"27cygo",
+            "themeName":"qu6dep",
+            "createTime":"2023-01-28",
+            "createUserId":1565,
+            "updateTime":"2023-01-28"
+        }
+}
+```
+
+## 绔欑偣涓婚浜嬮」
+
+### 鏌ヨ绔欑偣涓婚浜嬮」鍒楄〃
+
+**璇锋眰URL:** site/theme/matter/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ绔欑偣涓婚浜嬮」
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+page|Integer|鍚褰撳墠椤�
+size|Integer|鍚姣忛〉鏉℃暟锛屽€间负-1锛屾煡璇㈡墍鏈夎褰�
+siteId|Long|鍚绔欑偣ID
+siteName|String|鍚绔欑偣鍚嶇О,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+matterId|Long|鍚浜嬮」ID
+matterName|String|鍚浜嬮」鍚嶇О,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+matterCode|String|鍚浜嬮」缂栫爜,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+userType|String|鍚鏈嶅姟绫诲瀷锛�1.鍏叡鏈嶅姟锛�2.涓汉鏈嶅姟锛�3.娉曚汉鏈嶅姟锛�,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+themeCode|String|鍚涓婚缂栫爜,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+themeName|String|鍚涓婚鍚嶇О,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+source|Integer|鍚浜嬮」鏉ユ簮
+
+**璇锋眰鏍蜂緥:**
+```
+  {
+        "siteId":2334,
+        "siteName":"j1sn8h",
+        "matterId":5032,
+        "matterName":"xnn17d",
+        "matterCode":"5c6fxz",
+        "userType":"9c8tar",
+        "themeCode":"ztkpff",
+        "themeName":"hyfa7h",
+        "source":3642,
+        "page":1,
+        "size":10
+  }
+
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О|鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;per_page|Integer|姣忛〉鏉℃暟
+&emsp;total|Integer|鎬绘潯鏁�
+&emsp;last_page|Integer|鎬婚〉鏁�
+&emsp;current_page|Integer|褰撳墠椤�
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;&emsp;siteId|Long|绔欑偣ID
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О
+&emsp;&emsp;matterId|Long|浜嬮」ID
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О
+&emsp;&emsp;matterCode|String|浜嬮」缂栫爜
+&emsp;&emsp;userType|String|鏈嶅姟绫诲瀷锛�1.鍏叡鏈嶅姟锛�2.涓汉鏈嶅姟锛�3.娉曚汉鏈嶅姟锛�
+&emsp;&emsp;themeCode|String|涓婚缂栫爜
+&emsp;&emsp;themeName|String|涓婚鍚嶇О
+&emsp;&emsp;source|Integer|浜嬮」鏉ユ簮
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿
+dict|object|瀛楀吀瀵硅薄
+&emsp;userType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code":1,
+    "data":{
+    }
+}
+```
+
+### 鏌ョ湅绔欑偣涓婚浜嬮」
+
+**璇锋眰URL:** site/theme/matter/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅绔欑偣涓婚浜嬮」锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|Long|鏄瘄ID
+
+**璇锋眰鏍蜂緥:**
+```
+    http://localhost/site/theme/matter/info?id=549
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:-------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;siteId|Long|绔欑偣ID
+&emsp;siteName|String|绔欑偣鍚嶇О
+&emsp;matterId|Long|浜嬮」ID
+&emsp;matterName|String|浜嬮」鍚嶇О
+&emsp;matterCode|String|浜嬮」缂栫爜
+&emsp;userType|String|鏈嶅姟绫诲瀷锛�1.鍏叡鏈嶅姟锛�2.涓汉鏈嶅姟锛�3.娉曚汉鏈嶅姟锛�
+&emsp;themeCode|String|涓婚缂栫爜
+&emsp;themeName|String|涓婚鍚嶇О
+&emsp;source|Integer|浜嬮」鏉ユ簮
+&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;updateTime|Date|淇敼鏃堕棿
+dict|object|瀛楀吀瀵硅薄
+&emsp;userType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code": 1,
+    "data": {
+            "id":6517,
+            "siteId":8377,
+            "siteName":"wnnjis",
+            "matterId":5970,
+            "matterName":"b5c0l3",
+            "matterCode":"y3yyz4",
+            "userType":"sr07tk",
+            "themeCode":"s1az2z",
+            "themeName":"isyo83",
+            "source":7309,
+            "createTime":"2023-01-28",
+            "createUserId":2157,
+            "updateTime":"2023-01-28"
+        }
+}
+```
+
+
+
+## 涓氬姟
+
+### 鏌ヨ绔欑偣涓氬姟鍒楄〃
+
+**璇锋眰URL:** business/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ绔欑偣涓氬姟
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+name|String|涓氬姟鍚嶇О|鍚-
+flownum|String|娴佹按缂栧彿濡侫銆丅|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "name":"q6pduw",
+        "flownum":"twqunp",
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;parentId|Long|鐖剁骇ID|-
+&emsp;&emsp;ancestors|String|绁栫骇鍒楄〃锛岄€楀彿鍒嗛殧|-
+&emsp;&emsp;isBusiness|Integer|涓氬姟绫诲瀷(0.涓€绾т笟鍔�,1.浜岀骇涓氬姟)|-
+&emsp;&emsp;name|String|涓氬姟鍚嶇О|-
+&emsp;&emsp;remark|String|澶囨敞|-
+&emsp;&emsp;canorder|Integer|鏄惁鍏佽棰勭害锛�1.鍏佽锛�0.涓嶅厑璁革級|-
+&emsp;&emsp;cantake|Integer|鏄惁鍏佽鍙栧彿锛�1.鍏佽锛�0.涓嶅厑璁革級|-
+&emsp;&emsp;datashow|Integer|澶у巺鎯呭喌灞曠ず 锛�1.灞曠ず锛�0.涓嶅睍绀猴級|-
+&emsp;&emsp;englishname|String|鑻辫涓氬姟鍚峾-
+&emsp;&emsp;flownum|String|娴佹按缂栧彿濡侫銆丅|-
+&emsp;&emsp;businessType|Integer|涓氬姟绫诲瀷 (0.涓€浣撳寲涓氬姟锛�1.鑷缓涓氬姟)|-
+&emsp;&emsp;status|Integer|涓氬姟鐘舵€� (0.鍋滅敤锛�1.姝e父)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;isBusiness|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;canorder|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;cantake|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;datashow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;businessType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;status|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+
+### 鏌ヨ涓氬姟鍒楄〃锛堥潪鏍戝舰锛�
+
+**璇锋眰URL:** business/flatList
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ绔欑偣涓氬姟
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-1鏌ヨ鍏ㄩ儴
+name|String|涓氬姟鍚嶇О|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "name":"q6pduw",
+        "flownum":"twqunp",
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;parentId|Long|鐖剁骇ID|-
+&emsp;&emsp;ancestors|String|绁栫骇鍒楄〃锛岄€楀彿鍒嗛殧|-
+&emsp;&emsp;isBusiness|Integer|涓氬姟绫诲瀷(0.涓€绾т笟鍔�,1.浜岀骇涓氬姟)|-
+&emsp;&emsp;name|String|涓氬姟鍚嶇О|-
+&emsp;&emsp;remark|String|澶囨敞|-
+&emsp;&emsp;canorder|Integer|鏄惁鍏佽棰勭害锛�1.鍏佽锛�0.涓嶅厑璁革級|-
+&emsp;&emsp;cantake|Integer|鏄惁鍏佽鍙栧彿锛�1.鍏佽锛�0.涓嶅厑璁革級|-
+&emsp;&emsp;datashow|Integer|澶у巺鎯呭喌灞曠ず 锛�1.灞曠ず锛�0.涓嶅睍绀猴級|-
+&emsp;&emsp;englishname|String|鑻辫涓氬姟鍚峾-
+&emsp;&emsp;flownum|String|娴佹按缂栧彿濡侫銆丅|-
+&emsp;&emsp;businessType|Integer|涓氬姟绫诲瀷 (0.涓€浣撳寲涓氬姟锛�1.鑷缓涓氬姟)|-
+&emsp;&emsp;status|Integer|涓氬姟鐘舵€� (0.鍋滅敤锛�1.姝e父)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;isBusiness|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;canorder|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;cantake|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;datashow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;businessType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;status|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+
+}
+```
+
+### 娣诲姞涓氬姟鍒扮珯鐐�
+
+**璇锋眰URL:** business/addBusinessToSite
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 娣诲姞涓氬姟鍒扮珯鐐�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+businessIds|String|涓氬姟id,澶氫釜閫楀彿鍒嗛殧|鍚-
+siteId|String|绔欑偣ID|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+
+### 鏌ョ湅绔欑偣涓氬姟
+
+**璇锋眰URL:** business/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅绔欑偣涓氬姟锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/business/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;parentId|Long|鐖剁骇ID|-
+&emsp;ancestors|String|绁栫骇鍒楄〃锛岄€楀彿鍒嗛殧|-
+&emsp;isBusiness|Integer|涓氬姟绫诲瀷(0.涓€绾т笟鍔�,1.浜岀骇涓氬姟)|-
+&emsp;name|String|涓氬姟鍚嶇О|-
+&emsp;remark|String|澶囨敞|-
+&emsp;canorder|Integer|鏄惁鍏佽棰勭害锛�1.鍏佽锛�0.涓嶅厑璁革級|-
+&emsp;cantake|Integer|鏄惁鍏佽鍙栧彿锛�1.鍏佽锛�0.涓嶅厑璁革級|-
+&emsp;datashow|Integer|澶у巺鎯呭喌灞曠ず 锛�1.灞曠ず锛�0.涓嶅睍绀猴級|-
+&emsp;englishname|String|鑻辫涓氬姟鍚峾-
+&emsp;flownum|String|娴佹按缂栧彿濡侫銆丅|-
+&emsp;businessType|Integer|涓氬姟绫诲瀷 (0.涓€浣撳寲涓氬姟锛�1.鑷缓涓氬姟)|-
+&emsp;status|Integer|涓氬姟鐘舵€� (0.鍋滅敤锛�1.姝e父)|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;isBusiness|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;canorder|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;cantake|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;datashow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;businessType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;status|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+
+### 淇濆瓨鏇存柊绔欑偣涓氬姟
+
+**璇锋眰URL:** business/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂扮珯鐐逛笟鍔★細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+parentId|Long|鐖剁骇ID|鏄瘄榛樿椤剁骇涓�0锛屽綋涓氬姟绫诲瀷涓轰簩绾ф椂parentId涓嶄负0
+isBusiness|Integer|涓氬姟绫诲瀷(0.涓€绾т笟鍔�,1.浜岀骇涓氬姟)|鏄瘄褰撲负浜岀骇涓氬姟鏃秔araentId涓轰竴绾т笟鍔$殑涓籭d
+name|String|涓氬姟鍚嶇О|鏄瘄-
+remark|String|澶囨敞|鏄瘄-
+flownum|String|涓氬姟缂栧彿锛屽A锛孊|鏄瘄-
+canorder|Integer|鏄惁鍏佽棰勭害锛�1.鍏佽锛�0.涓嶅厑璁革級|鏄瘄-
+cantake|Integer|鏄惁鍏佽鍙栧彿锛�1.鍏佽锛�0.涓嶅厑璁革級|鏄瘄-
+datashow|Integer|澶у巺鎯呭喌灞曠ず 锛�1.灞曠ず锛�0.涓嶅睍绀猴級|鏄瘄-
+englishname|String|鑻辫涓氬姟鍚峾鏄瘄-
+flownum|String|娴佹按缂栧彿濡侫銆丅|鏄瘄-
+businessType|Integer|涓氬姟绫诲瀷 (0.涓€浣撳寲涓氬姟锛�1.鑷缓涓氬姟)|鏄瘄-
+status|Integer|涓氬姟鐘舵€� (0.鍋滅敤锛�1.姝e父)|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+  "parentId":0,
+  "isBusiness":0,
+  "name":"娴嬭瘯涓氬姟",
+  "remark":"fvnn84",
+  "canorder":1,
+  "cantake":1,
+  "datashow":1,
+  "englishname":"foe6s9",
+  "flownum":"k39shb",
+  "businessType":1,
+  "status":1
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;parentId|Long|鐖剁骇ID|-
+&emsp;&emsp;ancestors|String|绁栫骇鍒楄〃锛岄€楀彿鍒嗛殧|-
+&emsp;&emsp;isBusiness|Integer|涓氬姟绫诲瀷(0.涓€绾т笟鍔�,1.浜岀骇涓氬姟)|-
+&emsp;&emsp;name|String|涓氬姟鍚嶇О|-
+&emsp;&emsp;remark|String|澶囨敞|-
+&emsp;&emsp;canorder|Integer|鏄惁鍏佽棰勭害锛�1.鍏佽锛�0.涓嶅厑璁革級|-
+&emsp;&emsp;cantake|Integer|鏄惁鍏佽鍙栧彿锛�1.鍏佽锛�0.涓嶅厑璁革級|-
+&emsp;&emsp;datashow|Integer|澶у巺鎯呭喌灞曠ず 锛�1.灞曠ず锛�0.涓嶅睍绀猴級|-
+&emsp;&emsp;englishname|String|鑻辫涓氬姟鍚峾-
+&emsp;&emsp;flownum|String|娴佹按缂栧彿濡侫銆丅|-
+&emsp;&emsp;businessType|Integer|涓氬姟绫诲瀷 (0.涓€浣撳寲涓氬姟锛�1.鑷缓涓氬姟)|-
+&emsp;&emsp;status|Integer|涓氬姟鐘舵€� (0.鍋滅敤锛�1.姝e父)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎涓氬姟
+
+**璇锋眰URL:** business/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎涓氬姟
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/business/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 鍩虹浜嬮」
+
+### 鏌ヨ鍩虹浜嬮」鍒楄〃
+
+**璇锋眰URL:** matter/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ鍩虹浜嬮」
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|--|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+matterName|String|浜嬮」鍚嶇О|鍚-
+deptCode|String|閮ㄩ棬缂栧彿|鍚-
+matterNo|String|浜嬮」缂栧彿|鍚-
+belongDept|String|鎵€灞為儴闂▅鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "matterName":"phh423",
+        "matterNo":"1ccc9a",
+        "belongDept":"ao0cxh",
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;siteId|Long|绔欑偣ID|-
+&emsp;&emsp;tid|String|浠庢斂鍔$郴缁熸潵鐨勪簨椤筰d|-
+&emsp;&emsp;tcode|String|浠庢斂鍔$郴缁熸潵鐨勪簨椤筩ode|-
+&emsp;&emsp;tname|String|浠庢斂鍔$郴缁熸潵鐨勪簨椤筺ame|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;englishName|String|鑻辫浜嬮」鍚峾-
+&emsp;&emsp;matterNo|String|浜嬮」缂栧彿|-
+&emsp;&emsp;areaCode|String|鍖哄煙缂栫爜
+&emsp;&emsp;deptCode|String|閮ㄩ棬缂栧彿
+&emsp;&emsp;powerCode|String|琛屾斂鏉冨姏缂栧彿
+&emsp;&emsp;themeCode|String|涓婚缂栧彿
+&emsp;&emsp;usertypeCode|String|鏈嶅姟绫诲瀷缂栧彿
+&emsp;&emsp;groupName|String|浜嬮」缁勫悕
+&emsp;&emsp;url|String|浜嬮」璇︽儏閾炬帴
+&emsp;&emsp;haveGetMatterInfo|String|鏄惁鑾峰彇浜嬮」璇︽儏
+&emsp;&emsp;belongDept|String|鎵€灞為儴闂▅-
+&emsp;&emsp;appoveObjectShow|String|鏈嶅姟瀵硅薄 锛堜簨涓氭硶浜�.浜嬩笟娉曚汉锛岀ぞ浼氱粍缁囨硶浜�.绀句細缁勭粐娉曚汉锛岄潪娉曚汉浼佷笟.闈炴硶浜轰紒涓氾紝浼佷笟娉曚汉.浼佷笟娉曚汉锛岃嚜鐒朵汉.鑷劧浜猴紝鍏朵粬缁勭粐.鍏朵粬缁勭粐锛墊-
+&emsp;&emsp;operatScopeShow|String|閫氬姙鑼冨洿 锛堟棤.鏃狅紝鍏ㄥ浗.鍏ㄥ浗锛屽叏甯�.鍏ㄥ競锛屽叏鍘�.鍏ㄥ幙锛屽叏闀嘯涔� 琛楅亾].鍏ㄩ晣[涔� 琛楅亾]锛岃法鏉慬绀惧尯].璺ㄦ潙[绀惧尯]锛墊-
+&emsp;&emsp;appoveTimeLimitShow|String|鍔炰欢绫诲瀷锛堢綉缁滃姙浠�.缃戠粶鍔炰欢锛岃鏀垮鎵逛竴鑸欢.琛屾斂瀹℃壒涓€鑸欢锛岀患鍚堢獥鍙d欢.缁煎悎绐楀彛浠讹級|-
+&emsp;&emsp;handleType|String|鍔炵悊褰㈠紡锛堢獥鍙e姙鐞�.绐楀彛鍔炵悊锛岀綉涓婂姙鐞�.缃戜笂鍔炵悊锛�    |-
+&emsp;&emsp;legalTimeLimitShow|String|娉曞畾鍔炵粨鏃堕檺|-
+&emsp;&emsp;legalEndExplain|String|娉曞畾鏃堕檺鍔炵粨璇存槑|-
+&emsp;&emsp;promiseTimeLimitShow|String|鎵胯鍔炵粨鏃堕檺|-
+&emsp;&emsp;promiseEndExplain|String|鎵胯鏃堕檺鍔炵粨璇存槑|-
+&emsp;&emsp;isChargesShow|String|鏄惁鏀惰垂锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;certificationLevelsShow|String|璁よ瘉绛夌骇闇€姹傦紙瀹炲悕璁よ瘉.瀹炲悕璁よ瘉锛屽崟娆¢潰绛�.鍗曟闈㈢锛屾瘡娆¢潰绛�.姣忔闈㈢锛墊-
+&emsp;&emsp;planTakeTime|Date|璁″垝鐢熸晥鏃ユ湡|-
+&emsp;&emsp;promiseTakeTime|Date|鎵胯鐢熸晥鏃ユ湡|-
+&emsp;&emsp;specialProcedure|String|鐗瑰埆绋嬪簭|-
+&emsp;&emsp;windowToTheSceneNum|Integer|绐楀彛鍒扮幇鍦烘鏁皘-
+&emsp;&emsp;isOnlineSubscribeShow|String|鏄惁缃戜笂棰勭害,绐楀彛鍔炵悊閫夛紙鍚�.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;isExpressTakeShow|String|鐗╂祦蹇€�,绐楀彛鍔炵悊閫夛紙鍚�.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;isProvinceAcquisitionShow|String|鏄惁鏀寔鍏ㄧ渷鑼冨洿灏辫繎鍙栦欢锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;isApplyProvinceShow|String|鏄惁鏀寔鍏ㄧ渷鑼冨洿灏辫繎鍔炵悊锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;mustSceneExplain|String|蹇呴』鍒扮幇鍦哄師鍥爘-
+&emsp;&emsp;onlineType|String|缃戝姙绫诲瀷锛堝師浠堕瀹�.鍘熶欢棰勫锛屽師浠舵牳楠�.鍘熶欢鏍搁獙锛屽叏绋嬬綉鍔�.鍏ㄧ▼缃戝姙锛墊-
+&emsp;&emsp;onlineToTheSceneNum|Integer|缃戝姙鍒扮幇鍦烘鏁皘-
+&emsp;&emsp;onlineOperatDeep|String|缃戠粶鍔炵悊娣卞害锛堜簰鑱旂綉鍜ㄨ.浜掕仈缃戝挩璇紝浜掕仈缃戞敹浠�.浜掕仈缃戞敹浠讹紝浜掕仈缃戦瀹�.浜掕仈缃戦瀹★紝浜掕仈缃戝彈鐞�.浜掕仈缃戝彈鐞嗭紝浜掕仈缃戝姙鐞�.浜掕仈缃戝姙鐞嗭紝浜掕仈缃戝姙鐞嗙粨鏋滀俊鎭弽棣�.浜掕仈缃戝姙鐞嗙粨鏋滀俊鎭弽棣堬紝鍏朵粬.鍏朵粬锛墊-
+&emsp;&emsp;isExpressTakeOnlineShow|String|鐗╂祦蹇€掞紝缃戜笂鍔炵悊閫夛紙鍚�.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;isDoorTakeShow|String|鏄惁鏀寔涓婇棬鏀跺彇鐢宠锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;onlineMustSceneExplain|String|缃戜笂蹇呴』鍒扮幇鍦哄師鍥爘-
+&emsp;&emsp;performDeptType|String|瀹炴柦涓讳綋|-
+&emsp;&emsp;matterEdition|String|浜嬮」鐗堟湰|-
+&emsp;&emsp;eventTypeShow|String|浜嬮」绫诲瀷鍚嶇О锛堣鏀胯鍙�.琛屾斂璁稿彲锛岃鏀垮缃�.琛屾斂澶勭綒锛岃鏀垮己鍒�.琛屾斂寮哄埗锛岃鏀垮緛鏀�.琛屾斂寰佹敹锛岃鏀跨粰浠�.琛屾斂缁欎粯锛岃鏀挎鏌�.琛屾斂妫€鏌ワ紝琛屾斂纭.琛屾斂纭锛岃鏀垮鍔�.琛屾斂濂栧姳锛岃鏀胯鍐�.琛屾斂瑁佸喅锛屽叾浠栬鏀挎潈鍔�.鍏朵粬琛屾斂鏉冨姏锛屼富鍔ㄦ湇鍔�.涓诲姩鏈嶅姟锛屼緷鐢宠鏈嶅姟.渚濈敵璇锋湇鍔★紝鍜ㄨ鏌ヨ.鍜ㄨ鏌ヨ锛屾湭褰掔被浜嬮」.鏈綊绫讳簨椤癸級|-
+&emsp;&emsp;performHierarchyShow|String|琛屼娇灞傜骇鍚嶇О锛堢渷绾�.鐪佺骇锛屽競绾�.甯傜骇锛屽幙绾�.鍘跨骇锛岄晣[涔� 琛楅亾].闀嘯涔� 琛楅亾]锛屾潙[绀惧尯]绾�.鏉慬绀惧尯]绾э級|-
+&emsp;&emsp;powerSourceShow|String|鏉冨姏鏉ユ簮锛堟硶瀹氭湰绾ц浣�.娉曞畾鏈骇琛屼娇锛屼笂绾т笅鏀�.涓婄骇涓嬫斁锛屼笂绾ф巿鏉�.涓婄骇鎺堟潈锛屽悓绾ф巿鏉�.鍚岀骇鎺堟潈锛屼笂绾у鎵�.涓婄骇濮旀墭锛屽悓绾у鎵�.鍚岀骇濮旀墭锛墊-
+&emsp;&emsp;performDeptTypeShow|String|瀹炴柦涓讳綋鎬ц川锛堟硶瀹氭満鍏�.娉曞畾鏈哄叧锛屾巿鏉冪粍缁�.鎺堟潈缁勭粐锛屽彈濮旀墭缁勭粐.鍙楀鎵樼粍缁囷級|-
+&emsp;&emsp;goveServiceCenterShow|String|鏄惁杩涢┗涓績锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;isConvenientCenterShow|String|鏄惁绾冲叆渚挎皯鏈嶅姟涓績锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;terminalHandle|String|鑷姪缁堢鍔炵悊 锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;isOnline|String|鏄惁缃戝姙 锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;isOnlinePayShow|String|鏀寔缃戜笂鏀粯锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;entrustmentDepartmen|String|濮旀墭閮ㄩ棬锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;jointInfoShow|String|鑱斿姙鏈烘瀯|-
+&emsp;&emsp;matterStatus|String|浜嬮」鐘舵€侊紙鍋滅敤.鍋滅敤锛屽湪鐢�.鍦ㄧ敤锛墊-
+&emsp;&emsp;numberLimit|Long|鏁伴噺闄愬埗|-
+&emsp;&emsp;type|String|涓婚绫诲瀷|-
+&emsp;&emsp;baseCode|String|鍩烘湰缂栫爜|-
+&emsp;&emsp;implementCode|String|瀹炴柦缂栫爜|-
+&emsp;&emsp;implementBodyCode|String|瀹炴柦涓讳綋缂栫爜|-
+&emsp;&emsp;operateItemCode|String|鍔炵悊椤圭紪鐮亅-
+&emsp;&emsp;townshipName|String|涔¢晣琛楅亾鍚嶇О|-
+&emsp;&emsp;townshipCode|String|涔¢晣琛楅亾浠g爜|-
+&emsp;&emsp;villageName|String|鏉戝眳绀惧尯鍚嶇О|-
+&emsp;&emsp;villageCode|String|鏉戝眳绀惧尯浠g爜|-
+&emsp;&emsp;operateTime|String|鍔炵悊鏃堕棿|-
+&emsp;&emsp;operateSite|String|鍔炵悊鍦扮偣|-
+&emsp;&emsp;cousultingShow|String|鍜ㄨ鏂瑰紡|-
+&emsp;&emsp;cousultingTelephoneShow|String|鍜ㄨ鐢佃瘽|-
+&emsp;&emsp;superviseShow|String|鐩戠潱鎶曡瘔鏂瑰紡|-
+&emsp;&emsp;sort|Integer|鎺掑簭|-
+&emsp;&emsp;source|Integer|浜嬮」鏉ユ簮(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;appoveObjectShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;operatScopeShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;appoveTimeLimitShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;handleType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isChargesShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;certificationLevelsShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isOnlineSubscribeShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isExpressTakeShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isProvinceAcquisitionShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isApplyProvinceShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;onlineType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;onlineOperatDeep|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isExpressTakeOnlineShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isDoorTakeShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;eventTypeShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;performHierarchyShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;powerSourceShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;performDeptTypeShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;goveServiceCenterShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isConvenientCenterShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;terminalHandle|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isOnline|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isOnlinePayShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;entrustmentDepartmen|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;matterStatus|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;source|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅鍩虹浜嬮」
+
+**璇锋眰URL:** matter/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅鍩虹浜嬮」锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/matter/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;siteId|Long|绔欑偣ID|-
+&emsp;tid|String|浠庢斂鍔$郴缁熸潵鐨勪簨椤筰d|-
+&emsp;tcode|String|浠庢斂鍔$郴缁熸潵鐨勪簨椤筩ode|-
+&emsp;tname|String|浠庢斂鍔$郴缁熸潵鐨勪簨椤筺ame|-
+&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;englishName|String|鑻辫浜嬮」鍚峾-
+&emsp;matterNo|String|浜嬮」缂栧彿|-
+&emsp;belongDept|String|鎵€灞為儴闂▅-
+&emsp;appoveObjectShow|String|鏈嶅姟瀵硅薄 锛堜簨涓氭硶浜�.浜嬩笟娉曚汉锛岀ぞ浼氱粍缁囨硶浜�.绀句細缁勭粐娉曚汉锛岄潪娉曚汉浼佷笟.闈炴硶浜轰紒涓氾紝浼佷笟娉曚汉.浼佷笟娉曚汉锛岃嚜鐒朵汉.鑷劧浜猴紝鍏朵粬缁勭粐.鍏朵粬缁勭粐锛墊-
+&emsp;operatScopeShow|String|閫氬姙鑼冨洿 锛堟棤.鏃狅紝鍏ㄥ浗.鍏ㄥ浗锛屽叏甯�.鍏ㄥ競锛屽叏鍘�.鍏ㄥ幙锛屽叏闀嘯涔� 琛楅亾].鍏ㄩ晣[涔� 琛楅亾]锛岃法鏉慬绀惧尯].璺ㄦ潙[绀惧尯]锛墊-
+&emsp;appoveTimeLimitShow|String|鍔炰欢绫诲瀷锛堢綉缁滃姙浠�.缃戠粶鍔炰欢锛岃鏀垮鎵逛竴鑸欢.琛屾斂瀹℃壒涓€鑸欢锛岀患鍚堢獥鍙d欢.缁煎悎绐楀彛浠讹級|-
+&emsp;handleType|String|鍔炵悊褰㈠紡锛堢獥鍙e姙鐞�.绐楀彛鍔炵悊锛岀綉涓婂姙鐞�.缃戜笂鍔炵悊锛�    |-
+&emsp;legalTimeLimitShow|String|娉曞畾鍔炵粨鏃堕檺|-
+&emsp;legalEndExplain|String|娉曞畾鏃堕檺鍔炵粨璇存槑|-
+&emsp;promiseTimeLimitShow|String|鎵胯鍔炵粨鏃堕檺|-
+&emsp;promiseEndExplain|String|鎵胯鏃堕檺鍔炵粨璇存槑|-
+&emsp;isChargesShow|String|鏄惁鏀惰垂锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;certificationLevelsShow|String|璁よ瘉绛夌骇闇€姹傦紙瀹炲悕璁よ瘉.瀹炲悕璁よ瘉锛屽崟娆¢潰绛�.鍗曟闈㈢锛屾瘡娆¢潰绛�.姣忔闈㈢锛墊-
+&emsp;planTakeTime|Date|璁″垝鐢熸晥鏃ユ湡|-
+&emsp;promiseTakeTime|Date|鎵胯鐢熸晥鏃ユ湡|-
+&emsp;specialProcedure|String|鐗瑰埆绋嬪簭|-
+&emsp;windowToTheSceneNum|Integer|绐楀彛鍒扮幇鍦烘鏁皘-
+&emsp;isOnlineSubscribeShow|String|鏄惁缃戜笂棰勭害,绐楀彛鍔炵悊閫夛紙鍚�.鍚︼紝鏄�.鏄級|-
+&emsp;isExpressTakeShow|String|鐗╂祦蹇€�,绐楀彛鍔炵悊閫夛紙鍚�.鍚︼紝鏄�.鏄級|-
+&emsp;isProvinceAcquisitionShow|String|鏄惁鏀寔鍏ㄧ渷鑼冨洿灏辫繎鍙栦欢锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;isApplyProvinceShow|String|鏄惁鏀寔鍏ㄧ渷鑼冨洿灏辫繎鍔炵悊锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;mustSceneExplain|String|蹇呴』鍒扮幇鍦哄師鍥爘-
+&emsp;onlineType|String|缃戝姙绫诲瀷锛堝師浠堕瀹�.鍘熶欢棰勫锛屽師浠舵牳楠�.鍘熶欢鏍搁獙锛屽叏绋嬬綉鍔�.鍏ㄧ▼缃戝姙锛墊-
+&emsp;onlineToTheSceneNum|Integer|缃戝姙鍒扮幇鍦烘鏁皘-
+&emsp;onlineOperatDeep|String|缃戠粶鍔炵悊娣卞害锛堜簰鑱旂綉鍜ㄨ.浜掕仈缃戝挩璇紝浜掕仈缃戞敹浠�.浜掕仈缃戞敹浠讹紝浜掕仈缃戦瀹�.浜掕仈缃戦瀹★紝浜掕仈缃戝彈鐞�.浜掕仈缃戝彈鐞嗭紝浜掕仈缃戝姙鐞�.浜掕仈缃戝姙鐞嗭紝浜掕仈缃戝姙鐞嗙粨鏋滀俊鎭弽棣�.浜掕仈缃戝姙鐞嗙粨鏋滀俊鎭弽棣堬紝鍏朵粬.鍏朵粬锛墊-
+&emsp;isExpressTakeOnlineShow|String|鐗╂祦蹇€掞紝缃戜笂鍔炵悊閫夛紙鍚�.鍚︼紝鏄�.鏄級|-
+&emsp;isDoorTakeShow|String|鏄惁鏀寔涓婇棬鏀跺彇鐢宠锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;onlineMustSceneExplain|String|缃戜笂蹇呴』鍒扮幇鍦哄師鍥爘-
+&emsp;performDeptType|String|瀹炴柦涓讳綋|-
+&emsp;matterEdition|String|浜嬮」鐗堟湰|-
+&emsp;eventTypeShow|String|浜嬮」绫诲瀷鍚嶇О锛堣鏀胯鍙�.琛屾斂璁稿彲锛岃鏀垮缃�.琛屾斂澶勭綒锛岃鏀垮己鍒�.琛屾斂寮哄埗锛岃鏀垮緛鏀�.琛屾斂寰佹敹锛岃鏀跨粰浠�.琛屾斂缁欎粯锛岃鏀挎鏌�.琛屾斂妫€鏌ワ紝琛屾斂纭.琛屾斂纭锛岃鏀垮鍔�.琛屾斂濂栧姳锛岃鏀胯鍐�.琛屾斂瑁佸喅锛屽叾浠栬鏀挎潈鍔�.鍏朵粬琛屾斂鏉冨姏锛屼富鍔ㄦ湇鍔�.涓诲姩鏈嶅姟锛屼緷鐢宠鏈嶅姟.渚濈敵璇锋湇鍔★紝鍜ㄨ鏌ヨ.鍜ㄨ鏌ヨ锛屾湭褰掔被浜嬮」.鏈綊绫讳簨椤癸級|-
+&emsp;performHierarchyShow|String|琛屼娇灞傜骇鍚嶇О锛堢渷绾�.鐪佺骇锛屽競绾�.甯傜骇锛屽幙绾�.鍘跨骇锛岄晣[涔� 琛楅亾].闀嘯涔� 琛楅亾]锛屾潙[绀惧尯]绾�.鏉慬绀惧尯]绾э級|-
+&emsp;powerSourceShow|String|鏉冨姏鏉ユ簮锛堟硶瀹氭湰绾ц浣�.娉曞畾鏈骇琛屼娇锛屼笂绾т笅鏀�.涓婄骇涓嬫斁锛屼笂绾ф巿鏉�.涓婄骇鎺堟潈锛屽悓绾ф巿鏉�.鍚岀骇鎺堟潈锛屼笂绾у鎵�.涓婄骇濮旀墭锛屽悓绾у鎵�.鍚岀骇濮旀墭锛墊-
+&emsp;performDeptTypeShow|String|瀹炴柦涓讳綋鎬ц川锛堟硶瀹氭満鍏�.娉曞畾鏈哄叧锛屾巿鏉冪粍缁�.鎺堟潈缁勭粐锛屽彈濮旀墭缁勭粐.鍙楀鎵樼粍缁囷級|-
+&emsp;goveServiceCenterShow|String|鏄惁杩涢┗涓績锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;isConvenientCenterShow|String|鏄惁绾冲叆渚挎皯鏈嶅姟涓績锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;terminalHandle|String|鑷姪缁堢鍔炵悊 锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;isOnline|String|鏄惁缃戝姙 锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;isOnlinePayShow|String|鏀寔缃戜笂鏀粯锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;entrustmentDepartmen|String|濮旀墭閮ㄩ棬锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;jointInfoShow|String|鑱斿姙鏈烘瀯|-
+&emsp;matterStatus|String|浜嬮」鐘舵€侊紙鍋滅敤.鍋滅敤锛屽湪鐢�.鍦ㄧ敤锛墊-
+&emsp;numberLimit|Long|鏁伴噺闄愬埗|-
+&emsp;type|String|涓婚绫诲瀷|-
+&emsp;baseCode|String|鍩烘湰缂栫爜|-
+&emsp;implementCode|String|瀹炴柦缂栫爜|-
+&emsp;implementBodyCode|String|瀹炴柦涓讳綋缂栫爜|-
+&emsp;operateItemCode|String|鍔炵悊椤圭紪鐮亅-
+&emsp;townshipName|String|涔¢晣琛楅亾鍚嶇О|-
+&emsp;townshipCode|String|涔¢晣琛楅亾浠g爜|-
+&emsp;villageName|String|鏉戝眳绀惧尯鍚嶇О|-
+&emsp;villageCode|String|鏉戝眳绀惧尯浠g爜|-
+&emsp;operateTime|String|鍔炵悊鏃堕棿|-
+&emsp;operateSite|String|鍔炵悊鍦扮偣|-
+&emsp;cousultingShow|String|鍜ㄨ鏂瑰紡|-
+&emsp;cousultingTelephoneShow|String|鍜ㄨ鐢佃瘽|-
+&emsp;superviseShow|String|鐩戠潱鎶曡瘔鏂瑰紡|-
+&emsp;sort|Integer|鎺掑簭|-
+&emsp;source|Integer|浜嬮」鏉ユ簮(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;appoveObjectShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;operatScopeShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;appoveTimeLimitShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;handleType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isChargesShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;certificationLevelsShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isOnlineSubscribeShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isExpressTakeShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isProvinceAcquisitionShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isApplyProvinceShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;onlineType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;onlineOperatDeep|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isExpressTakeOnlineShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isDoorTakeShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;eventTypeShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;performHierarchyShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;powerSourceShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;performDeptTypeShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;goveServiceCenterShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isConvenientCenterShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;terminalHandle|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isOnline|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isOnlinePayShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;entrustmentDepartmen|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;matterStatus|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;source|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+
+### 淇濆瓨鏇存柊鍩虹浜嬮」
+
+**璇锋眰URL:** matter/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂板熀纭€浜嬮」锛歩d涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+siteId|Long|绔欑偣ID|鏄瘄-
+tid|String|浠庢斂鍔$郴缁熸潵鐨勪簨椤筰d|鏄瘄-
+tcode|String|浠庢斂鍔$郴缁熸潵鐨勪簨椤筩ode|鏄瘄-
+tname|String|浠庢斂鍔$郴缁熸潵鐨勪簨椤筺ame|鏄瘄-
+matterName|String|浜嬮」鍚嶇О|鏄瘄-
+englishName|String|鑻辫浜嬮」鍚峾鏄瘄-
+matterNo|String|浜嬮」缂栧彿|鏄瘄-
+belongDept|String|鎵€灞為儴闂▅鏄瘄-
+appoveObjectShow|String|鏈嶅姟瀵硅薄 锛堜簨涓氭硶浜�.浜嬩笟娉曚汉锛岀ぞ浼氱粍缁囨硶浜�.绀句細缁勭粐娉曚汉锛岄潪娉曚汉浼佷笟.闈炴硶浜轰紒涓氾紝浼佷笟娉曚汉.浼佷笟娉曚汉锛岃嚜鐒朵汉.鑷劧浜猴紝鍏朵粬缁勭粐.鍏朵粬缁勭粐锛墊鏄瘄-
+operatScopeShow|String|閫氬姙鑼冨洿 锛堟棤.鏃狅紝鍏ㄥ浗.鍏ㄥ浗锛屽叏甯�.鍏ㄥ競锛屽叏鍘�.鍏ㄥ幙锛屽叏闀嘯涔� 琛楅亾].鍏ㄩ晣[涔� 琛楅亾]锛岃法鏉慬绀惧尯].璺ㄦ潙[绀惧尯]锛墊鏄瘄-
+appoveTimeLimitShow|String|鍔炰欢绫诲瀷锛堢綉缁滃姙浠�.缃戠粶鍔炰欢锛岃鏀垮鎵逛竴鑸欢.琛屾斂瀹℃壒涓€鑸欢锛岀患鍚堢獥鍙d欢.缁煎悎绐楀彛浠讹級|鏄瘄-
+handleType|String|鍔炵悊褰㈠紡锛堢獥鍙e姙鐞�.绐楀彛鍔炵悊锛岀綉涓婂姙鐞�.缃戜笂鍔炵悊锛�    |鏄瘄-
+legalTimeLimitShow|String|娉曞畾鍔炵粨鏃堕檺|鏄瘄-
+legalEndExplain|String|娉曞畾鏃堕檺鍔炵粨璇存槑|鏄瘄-
+promiseTimeLimitShow|String|鎵胯鍔炵粨鏃堕檺|鏄瘄-
+promiseEndExplain|String|鎵胯鏃堕檺鍔炵粨璇存槑|鏄瘄-
+isChargesShow|String|鏄惁鏀惰垂锛堝惁.鍚︼紝鏄�.鏄級|鏄瘄-
+certificationLevelsShow|String|璁よ瘉绛夌骇闇€姹傦紙瀹炲悕璁よ瘉.瀹炲悕璁よ瘉锛屽崟娆¢潰绛�.鍗曟闈㈢锛屾瘡娆¢潰绛�.姣忔闈㈢锛墊鏄瘄-
+planTakeTime|Date|璁″垝鐢熸晥鏃ユ湡|鏄瘄-
+promiseTakeTime|Date|鎵胯鐢熸晥鏃ユ湡|鏄瘄-
+specialProcedure|String|鐗瑰埆绋嬪簭|鏄瘄-
+windowToTheSceneNum|Integer|绐楀彛鍒扮幇鍦烘鏁皘鏄瘄-
+isOnlineSubscribeShow|String|鏄惁缃戜笂棰勭害,绐楀彛鍔炵悊閫夛紙鍚�.鍚︼紝鏄�.鏄級|鏄瘄-
+isExpressTakeShow|String|鐗╂祦蹇€�,绐楀彛鍔炵悊閫夛紙鍚�.鍚︼紝鏄�.鏄級|鏄瘄-
+isProvinceAcquisitionShow|String|鏄惁鏀寔鍏ㄧ渷鑼冨洿灏辫繎鍙栦欢锛堝惁.鍚︼紝鏄�.鏄級|鏄瘄-
+isApplyProvinceShow|String|鏄惁鏀寔鍏ㄧ渷鑼冨洿灏辫繎鍔炵悊锛堝惁.鍚︼紝鏄�.鏄級|鏄瘄-
+mustSceneExplain|String|蹇呴』鍒扮幇鍦哄師鍥爘鏄瘄-
+onlineType|String|缃戝姙绫诲瀷锛堝師浠堕瀹�.鍘熶欢棰勫锛屽師浠舵牳楠�.鍘熶欢鏍搁獙锛屽叏绋嬬綉鍔�.鍏ㄧ▼缃戝姙锛墊鏄瘄-
+onlineToTheSceneNum|Integer|缃戝姙鍒扮幇鍦烘鏁皘鏄瘄-
+onlineOperatDeep|String|缃戠粶鍔炵悊娣卞害锛堜簰鑱旂綉鍜ㄨ.浜掕仈缃戝挩璇紝浜掕仈缃戞敹浠�.浜掕仈缃戞敹浠讹紝浜掕仈缃戦瀹�.浜掕仈缃戦瀹★紝浜掕仈缃戝彈鐞�.浜掕仈缃戝彈鐞嗭紝浜掕仈缃戝姙鐞�.浜掕仈缃戝姙鐞嗭紝浜掕仈缃戝姙鐞嗙粨鏋滀俊鎭弽棣�.浜掕仈缃戝姙鐞嗙粨鏋滀俊鎭弽棣堬紝鍏朵粬.鍏朵粬锛墊鏄瘄-
+isExpressTakeOnlineShow|String|鐗╂祦蹇€掞紝缃戜笂鍔炵悊閫夛紙鍚�.鍚︼紝鏄�.鏄級|鏄瘄-
+isDoorTakeShow|String|鏄惁鏀寔涓婇棬鏀跺彇鐢宠锛堝惁.鍚︼紝鏄�.鏄級|鏄瘄-
+onlineMustSceneExplain|String|缃戜笂蹇呴』鍒扮幇鍦哄師鍥爘鏄瘄-
+performDeptType|String|瀹炴柦涓讳綋|鏄瘄-
+matterEdition|String|浜嬮」鐗堟湰|鏄瘄-
+eventTypeShow|String|浜嬮」绫诲瀷鍚嶇О锛堣鏀胯鍙�.琛屾斂璁稿彲锛岃鏀垮缃�.琛屾斂澶勭綒锛岃鏀垮己鍒�.琛屾斂寮哄埗锛岃鏀垮緛鏀�.琛屾斂寰佹敹锛岃鏀跨粰浠�.琛屾斂缁欎粯锛岃鏀挎鏌�.琛屾斂妫€鏌ワ紝琛屾斂纭.琛屾斂纭锛岃鏀垮鍔�.琛屾斂濂栧姳锛岃鏀胯鍐�.琛屾斂瑁佸喅锛屽叾浠栬鏀挎潈鍔�.鍏朵粬琛屾斂鏉冨姏锛屼富鍔ㄦ湇鍔�.涓诲姩鏈嶅姟锛屼緷鐢宠鏈嶅姟.渚濈敵璇锋湇鍔★紝鍜ㄨ鏌ヨ.鍜ㄨ鏌ヨ锛屾湭褰掔被浜嬮」.鏈綊绫讳簨椤癸級|鏄瘄-
+performHierarchyShow|String|琛屼娇灞傜骇鍚嶇О锛堢渷绾�.鐪佺骇锛屽競绾�.甯傜骇锛屽幙绾�.鍘跨骇锛岄晣[涔� 琛楅亾].闀嘯涔� 琛楅亾]锛屾潙[绀惧尯]绾�.鏉慬绀惧尯]绾э級|鏄瘄-
+powerSourceShow|String|鏉冨姏鏉ユ簮锛堟硶瀹氭湰绾ц浣�.娉曞畾鏈骇琛屼娇锛屼笂绾т笅鏀�.涓婄骇涓嬫斁锛屼笂绾ф巿鏉�.涓婄骇鎺堟潈锛屽悓绾ф巿鏉�.鍚岀骇鎺堟潈锛屼笂绾у鎵�.涓婄骇濮旀墭锛屽悓绾у鎵�.鍚岀骇濮旀墭锛墊鏄瘄-
+performDeptTypeShow|String|瀹炴柦涓讳綋鎬ц川锛堟硶瀹氭満鍏�.娉曞畾鏈哄叧锛屾巿鏉冪粍缁�.鎺堟潈缁勭粐锛屽彈濮旀墭缁勭粐.鍙楀鎵樼粍缁囷級|鏄瘄-
+goveServiceCenterShow|String|鏄惁杩涢┗涓績锛堝惁.鍚︼紝鏄�.鏄級|鏄瘄-
+isConvenientCenterShow|String|鏄惁绾冲叆渚挎皯鏈嶅姟涓績锛堝惁.鍚︼紝鏄�.鏄級|鏄瘄-
+terminalHandle|String|鑷姪缁堢鍔炵悊 锛堝惁.鍚︼紝鏄�.鏄級|鏄瘄-
+isOnline|String|鏄惁缃戝姙 锛堝惁.鍚︼紝鏄�.鏄級|鏄瘄-
+isOnlinePayShow|String|鏀寔缃戜笂鏀粯锛堝惁.鍚︼紝鏄�.鏄級|鏄瘄-
+entrustmentDepartmen|String|濮旀墭閮ㄩ棬锛堝惁.鍚︼紝鏄�.鏄級|鏄瘄-
+jointInfoShow|String|鑱斿姙鏈烘瀯|鏄瘄-
+matterStatus|String|浜嬮」鐘舵€侊紙鍋滅敤.鍋滅敤锛屽湪鐢�.鍦ㄧ敤锛墊鏄瘄-
+numberLimit|Long|鏁伴噺闄愬埗|鏄瘄-
+type|String|涓婚绫诲瀷|鏄瘄-
+baseCode|String|鍩烘湰缂栫爜|鏄瘄-
+implementCode|String|瀹炴柦缂栫爜|鏄瘄-
+implementBodyCode|String|瀹炴柦涓讳綋缂栫爜|鏄瘄-
+operateItemCode|String|鍔炵悊椤圭紪鐮亅鏄瘄-
+townshipName|String|涔¢晣琛楅亾鍚嶇О|鏄瘄-
+townshipCode|String|涔¢晣琛楅亾浠g爜|鏄瘄-
+villageName|String|鏉戝眳绀惧尯鍚嶇О|鏄瘄-
+villageCode|String|鏉戝眳绀惧尯浠g爜|鏄瘄-
+operateTime|String|鍔炵悊鏃堕棿|鏄瘄-
+operateSite|String|鍔炵悊鍦扮偣|鏄瘄-
+cousultingShow|String|鍜ㄨ鏂瑰紡|鏄瘄-
+cousultingTelephoneShow|String|鍜ㄨ鐢佃瘽|鏄瘄-
+superviseShow|String|鐩戠潱鎶曡瘔鏂瑰紡|鏄瘄-
+sort|Integer|鎺掑簭|鏄瘄-
+source|Integer|浜嬮」鏉ユ簮(0.鏀垮姟缃戯紝1.鑷畾涔�)|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;siteId|Long|绔欑偣ID|-
+&emsp;&emsp;tid|String|浠庢斂鍔$郴缁熸潵鐨勪簨椤筰d|-
+&emsp;&emsp;tcode|String|浠庢斂鍔$郴缁熸潵鐨勪簨椤筩ode|-
+&emsp;&emsp;tname|String|浠庢斂鍔$郴缁熸潵鐨勪簨椤筺ame|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;englishName|String|鑻辫浜嬮」鍚峾-
+&emsp;&emsp;matterNo|String|浜嬮」缂栧彿|-
+&emsp;&emsp;belongDept|String|鎵€灞為儴闂▅-
+&emsp;&emsp;appoveObjectShow|String|鏈嶅姟瀵硅薄 锛堜簨涓氭硶浜�.浜嬩笟娉曚汉锛岀ぞ浼氱粍缁囨硶浜�.绀句細缁勭粐娉曚汉锛岄潪娉曚汉浼佷笟.闈炴硶浜轰紒涓氾紝浼佷笟娉曚汉.浼佷笟娉曚汉锛岃嚜鐒朵汉.鑷劧浜猴紝鍏朵粬缁勭粐.鍏朵粬缁勭粐锛墊-
+&emsp;&emsp;operatScopeShow|String|閫氬姙鑼冨洿 锛堟棤.鏃狅紝鍏ㄥ浗.鍏ㄥ浗锛屽叏甯�.鍏ㄥ競锛屽叏鍘�.鍏ㄥ幙锛屽叏闀嘯涔� 琛楅亾].鍏ㄩ晣[涔� 琛楅亾]锛岃法鏉慬绀惧尯].璺ㄦ潙[绀惧尯]锛墊-
+&emsp;&emsp;appoveTimeLimitShow|String|鍔炰欢绫诲瀷锛堢綉缁滃姙浠�.缃戠粶鍔炰欢锛岃鏀垮鎵逛竴鑸欢.琛屾斂瀹℃壒涓€鑸欢锛岀患鍚堢獥鍙d欢.缁煎悎绐楀彛浠讹級|-
+&emsp;&emsp;handleType|String|鍔炵悊褰㈠紡锛堢獥鍙e姙鐞�.绐楀彛鍔炵悊锛岀綉涓婂姙鐞�.缃戜笂鍔炵悊锛�    |-
+&emsp;&emsp;legalTimeLimitShow|String|娉曞畾鍔炵粨鏃堕檺|-
+&emsp;&emsp;legalEndExplain|String|娉曞畾鏃堕檺鍔炵粨璇存槑|-
+&emsp;&emsp;promiseTimeLimitShow|String|鎵胯鍔炵粨鏃堕檺|-
+&emsp;&emsp;promiseEndExplain|String|鎵胯鏃堕檺鍔炵粨璇存槑|-
+&emsp;&emsp;isChargesShow|String|鏄惁鏀惰垂锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;certificationLevelsShow|String|璁よ瘉绛夌骇闇€姹傦紙瀹炲悕璁よ瘉.瀹炲悕璁よ瘉锛屽崟娆¢潰绛�.鍗曟闈㈢锛屾瘡娆¢潰绛�.姣忔闈㈢锛墊-
+&emsp;&emsp;planTakeTime|Date|璁″垝鐢熸晥鏃ユ湡|-
+&emsp;&emsp;promiseTakeTime|Date|鎵胯鐢熸晥鏃ユ湡|-
+&emsp;&emsp;specialProcedure|String|鐗瑰埆绋嬪簭|-
+&emsp;&emsp;windowToTheSceneNum|Integer|绐楀彛鍒扮幇鍦烘鏁皘-
+&emsp;&emsp;isOnlineSubscribeShow|String|鏄惁缃戜笂棰勭害,绐楀彛鍔炵悊閫夛紙鍚�.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;isExpressTakeShow|String|鐗╂祦蹇€�,绐楀彛鍔炵悊閫夛紙鍚�.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;isProvinceAcquisitionShow|String|鏄惁鏀寔鍏ㄧ渷鑼冨洿灏辫繎鍙栦欢锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;isApplyProvinceShow|String|鏄惁鏀寔鍏ㄧ渷鑼冨洿灏辫繎鍔炵悊锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;mustSceneExplain|String|蹇呴』鍒扮幇鍦哄師鍥爘-
+&emsp;&emsp;onlineType|String|缃戝姙绫诲瀷锛堝師浠堕瀹�.鍘熶欢棰勫锛屽師浠舵牳楠�.鍘熶欢鏍搁獙锛屽叏绋嬬綉鍔�.鍏ㄧ▼缃戝姙锛墊-
+&emsp;&emsp;onlineToTheSceneNum|Integer|缃戝姙鍒扮幇鍦烘鏁皘-
+&emsp;&emsp;onlineOperatDeep|String|缃戠粶鍔炵悊娣卞害锛堜簰鑱旂綉鍜ㄨ.浜掕仈缃戝挩璇紝浜掕仈缃戞敹浠�.浜掕仈缃戞敹浠讹紝浜掕仈缃戦瀹�.浜掕仈缃戦瀹★紝浜掕仈缃戝彈鐞�.浜掕仈缃戝彈鐞嗭紝浜掕仈缃戝姙鐞�.浜掕仈缃戝姙鐞嗭紝浜掕仈缃戝姙鐞嗙粨鏋滀俊鎭弽棣�.浜掕仈缃戝姙鐞嗙粨鏋滀俊鎭弽棣堬紝鍏朵粬.鍏朵粬锛墊-
+&emsp;&emsp;isExpressTakeOnlineShow|String|鐗╂祦蹇€掞紝缃戜笂鍔炵悊閫夛紙鍚�.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;isDoorTakeShow|String|鏄惁鏀寔涓婇棬鏀跺彇鐢宠锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;onlineMustSceneExplain|String|缃戜笂蹇呴』鍒扮幇鍦哄師鍥爘-
+&emsp;&emsp;performDeptType|String|瀹炴柦涓讳綋|-
+&emsp;&emsp;matterEdition|String|浜嬮」鐗堟湰|-
+&emsp;&emsp;eventTypeShow|String|浜嬮」绫诲瀷鍚嶇О锛堣鏀胯鍙�.琛屾斂璁稿彲锛岃鏀垮缃�.琛屾斂澶勭綒锛岃鏀垮己鍒�.琛屾斂寮哄埗锛岃鏀垮緛鏀�.琛屾斂寰佹敹锛岃鏀跨粰浠�.琛屾斂缁欎粯锛岃鏀挎鏌�.琛屾斂妫€鏌ワ紝琛屾斂纭.琛屾斂纭锛岃鏀垮鍔�.琛屾斂濂栧姳锛岃鏀胯鍐�.琛屾斂瑁佸喅锛屽叾浠栬鏀挎潈鍔�.鍏朵粬琛屾斂鏉冨姏锛屼富鍔ㄦ湇鍔�.涓诲姩鏈嶅姟锛屼緷鐢宠鏈嶅姟.渚濈敵璇锋湇鍔★紝鍜ㄨ鏌ヨ.鍜ㄨ鏌ヨ锛屾湭褰掔被浜嬮」.鏈綊绫讳簨椤癸級|-
+&emsp;&emsp;performHierarchyShow|String|琛屼娇灞傜骇鍚嶇О锛堢渷绾�.鐪佺骇锛屽競绾�.甯傜骇锛屽幙绾�.鍘跨骇锛岄晣[涔� 琛楅亾].闀嘯涔� 琛楅亾]锛屾潙[绀惧尯]绾�.鏉慬绀惧尯]绾э級|-
+&emsp;&emsp;powerSourceShow|String|鏉冨姏鏉ユ簮锛堟硶瀹氭湰绾ц浣�.娉曞畾鏈骇琛屼娇锛屼笂绾т笅鏀�.涓婄骇涓嬫斁锛屼笂绾ф巿鏉�.涓婄骇鎺堟潈锛屽悓绾ф巿鏉�.鍚岀骇鎺堟潈锛屼笂绾у鎵�.涓婄骇濮旀墭锛屽悓绾у鎵�.鍚岀骇濮旀墭锛墊-
+&emsp;&emsp;performDeptTypeShow|String|瀹炴柦涓讳綋鎬ц川锛堟硶瀹氭満鍏�.娉曞畾鏈哄叧锛屾巿鏉冪粍缁�.鎺堟潈缁勭粐锛屽彈濮旀墭缁勭粐.鍙楀鎵樼粍缁囷級|-
+&emsp;&emsp;goveServiceCenterShow|String|鏄惁杩涢┗涓績锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;isConvenientCenterShow|String|鏄惁绾冲叆渚挎皯鏈嶅姟涓績锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;terminalHandle|String|鑷姪缁堢鍔炵悊 锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;isOnline|String|鏄惁缃戝姙 锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;isOnlinePayShow|String|鏀寔缃戜笂鏀粯锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;entrustmentDepartmen|String|濮旀墭閮ㄩ棬锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;jointInfoShow|String|鑱斿姙鏈烘瀯|-
+&emsp;&emsp;matterStatus|String|浜嬮」鐘舵€侊紙鍋滅敤.鍋滅敤锛屽湪鐢�.鍦ㄧ敤锛墊-
+&emsp;&emsp;numberLimit|Long|鏁伴噺闄愬埗|-
+&emsp;&emsp;type|String|涓婚绫诲瀷|-
+&emsp;&emsp;baseCode|String|鍩烘湰缂栫爜|-
+&emsp;&emsp;implementCode|String|瀹炴柦缂栫爜|-
+&emsp;&emsp;implementBodyCode|String|瀹炴柦涓讳綋缂栫爜|-
+&emsp;&emsp;operateItemCode|String|鍔炵悊椤圭紪鐮亅-
+&emsp;&emsp;townshipName|String|涔¢晣琛楅亾鍚嶇О|-
+&emsp;&emsp;townshipCode|String|涔¢晣琛楅亾浠g爜|-
+&emsp;&emsp;villageName|String|鏉戝眳绀惧尯鍚嶇О|-
+&emsp;&emsp;villageCode|String|鏉戝眳绀惧尯浠g爜|-
+&emsp;&emsp;operateTime|String|鍔炵悊鏃堕棿|-
+&emsp;&emsp;operateSite|String|鍔炵悊鍦扮偣|-
+&emsp;&emsp;cousultingShow|String|鍜ㄨ鏂瑰紡|-
+&emsp;&emsp;cousultingTelephoneShow|String|鍜ㄨ鐢佃瘽|-
+&emsp;&emsp;superviseShow|String|鐩戠潱鎶曡瘔鏂瑰紡|-
+&emsp;&emsp;sort|Integer|鎺掑簭|-
+&emsp;&emsp;source|Integer|浜嬮」鏉ユ簮(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎鍩虹浜嬮」
+
+**璇锋眰URL:** matter/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎鍩虹浜嬮」
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/matter/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 浜嬮」鐢宠鏉愭枡
+
+### 鏌ヨ浜嬮」鐢宠鏉愭枡鍒楄〃
+
+**璇锋眰URL:** matter/datum/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ浜嬮」鐢宠鏉愭枡
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+matterId|Long|浜嬮」id|鍚-
+matterName|String|浜嬮」鍚嶇О|鍚-
+materialName|String|鏉愭枡鍚峾鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "matterId":6998,
+        "matterName":"w9aqxs",
+        "materialName":"ga7uwz",
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;&emsp;matterId|Long|浜嬮」id|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;materialName|String|鏉愭枡鍚峾-
+&emsp;&emsp;isMust|String|蹇呬氦鎬-
+&emsp;&emsp;materialType|String|鏉愭枡绫诲瀷|-
+&emsp;&emsp;materialProperty|String|鏉愭枡褰㈠紡|-
+&emsp;&emsp;electronicgs|String|鐢靛瓙鏉愭枡鏍煎紡|-
+&emsp;&emsp;materialSource|String|鏉愭枡鏉ユ簮娓犻亾锛堟棤.鏃狅紝鐢宠浜鸿嚜澶�.鐢宠浜鸿嚜澶囷紝鏀垮簻閮ㄩ棬鏍稿彂.鏀垮簻閮ㄩ棬鏍稿彂锛屽叾浠�.鍏朵粬锛墊-
+&emsp;&emsp;paperNum|Integer|绾歌川鏉愭枡浠芥暟|-
+&emsp;&emsp;paperGg|String|绾歌川鏉愭枡瑙勬牸|-
+&emsp;&emsp;jianmMs|String|鍑忓厤妯″紡锛堟棤.鏃狅紝鍑�.鍑忥紝鍏�.鍏嶏級|-
+&emsp;&emsp;sealWay|String|鐩栫珷鏂瑰紡|-
+&emsp;&emsp;isjianm|String|鏄惁鍑忓厤锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;&emsp;isLack|String|鏉愭枡鏄惁瀹圭己锛堝繀瑕�.蹇呰锛岄潪蹇呰.闈炲繀瑕侊級|-
+&emsp;&emsp;ybUrl|String|鏉愭枡鍦板潃|-
+&emsp;&emsp;materialSourceSm|String|鏉ユ簮娓犻亾璇存槑|-
+&emsp;&emsp;remarkSub|String|濉姤椤荤煡|-
+&emsp;&emsp;clauseContent|String|瑕佹眰鎻愪緵鏉愭枡鐨勪緷鎹畖-
+&emsp;&emsp;summary|String|鍙楃悊鏍囧噯|-
+&emsp;&emsp;remark|String|澶囨敞|-
+&emsp;&emsp;source|Integer|浜嬮」鏉ユ簮(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;&emsp;datumFileList|arrays|闄勪欢鍒楄〃|-
+&emsp;&emsp;&emsp;datumId|Long|鏉愭枡id|-
+&emsp;&emsp;&emsp;fileName|String|闄勪欢鍚嶇О|-
+&emsp;&emsp;&emsp;fileUrl|String|闄勪欢涓嬭浇鍦板潃|-
+&emsp;&emsp;&emsp;filetype|Integer|闄勪欢绫诲瀷 (1.绀轰緥鏍疯〃锛�2.绌虹櫧琛ㄦ牸)|-
+&emsp;&emsp;&emsp;source|Integer|闄勪欢鏉ユ簮 (0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;&emsp;&emsp;materialName|String|鏉愭枡鍚峾-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅浜嬮」鐢宠鏉愭枡
+
+**璇锋眰URL:** matter/datum/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅浜嬮」鐢宠鏉愭枡锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/matter/datum/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;matterId|Long|浜嬮」id|-
+&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;materialName|String|鏉愭枡鍚峾-
+&emsp;isMust|String|蹇呬氦鎬-
+&emsp;materialType|String|鏉愭枡绫诲瀷锛堟棤.鏃狅紝鍘熶欢.鍘熶欢锛屽鍗颁欢.澶嶅嵃浠讹紝鍘熶欢鍜屽鍗颁欢.鍘熶欢鍜屽鍗颁欢)|-
+&emsp;materialProperty|String|鏉愭枡褰㈠紡|-
+&emsp;electronicgs|String|鐢靛瓙鏉愭枡鏍煎紡|-
+&emsp;materialSource|String|鏉愭枡鏉ユ簮娓犻亾锛堟棤.鏃狅紝鐢宠浜鸿嚜澶�.鐢宠浜鸿嚜澶囷紝鏀垮簻閮ㄩ棬鏍稿彂.鏀垮簻閮ㄩ棬鏍稿彂锛屽叾浠�.鍏朵粬锛墊-
+&emsp;paperNum|Integer|绾歌川鏉愭枡浠芥暟|-
+&emsp;paperGg|String|绾歌川鏉愭枡瑙勬牸|-
+&emsp;jianmMs|String|鍑忓厤妯″紡锛堟棤.鏃狅紝鍑�.鍑忥紝鍏�.鍏嶏級|-
+&emsp;sealWay|String|鐩栫珷鏂瑰紡|-
+&emsp;isjianm|String|鏄惁鍑忓厤锛堝惁.鍚︼紝鏄�.鏄級|-
+&emsp;isLack|String|鏉愭枡鏄惁瀹圭己锛堝繀瑕�.蹇呰锛岄潪蹇呰.闈炲繀瑕侊級|-
+&emsp;ybUrl|String|鏉愭枡鍦板潃|-
+&emsp;materialSourceSm|String|鏉ユ簮娓犻亾璇存槑|-
+&emsp;remarkSub|String|濉姤椤荤煡|-
+&emsp;clauseContent|String|瑕佹眰鎻愪緵鏉愭枡鐨勪緷鎹畖-
+&emsp;summary|String|鍙楃悊鏍囧噯|-
+&emsp;remark|String|澶囨敞|-
+&emsp;source|Integer|浜嬮」鏉ユ簮(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;datumFileList|arrays|闄勪欢鍒楄〃|-
+&emsp;&emsp;datumId|Long|鏉愭枡id|-
+&emsp;&emsp;fileName|String|闄勪欢鍚嶇О|-
+&emsp;&emsp;fileUrl|String|闄勪欢涓嬭浇鍦板潃|-
+&emsp;&emsp;filetype|Integer|闄勪欢绫诲瀷 (1.绀轰緥鏍疯〃锛�2.绌虹櫧琛ㄦ牸)|-
+&emsp;&emsp;source|Integer|闄勪欢鏉ユ簮 (0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;&emsp;materialName|String|鏉愭枡鍚峾-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;isMust|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;materialProperty|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;electronicgs|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;materialSource|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;jianmMs|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isjianm|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isLack|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;source|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+
+### 淇濆瓨鏇存柊浜嬮」鐢宠鏉愭枡
+
+**璇锋眰URL:** matter/datum/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂颁簨椤圭敵璇锋潗鏂欙細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+matterId|Long|浜嬮」id|鏄瘄-
+matterName|String|浜嬮」鍚嶇О|鏄瘄-
+materialName|String|鏉愭枡鍚峾鏄瘄-
+isMust|String|蹇呬氦鎬鏄瘄-
+materialType|String|鏉愭枡绫诲瀷锛堟棤.鏃狅紝鍘熶欢.鍘熶欢锛屽鍗颁欢.澶嶅嵃浠讹紝鍘熶欢鍜屽鍗颁欢.鍘熶欢鍜屽鍗颁欢)|鏄瘄-
+materialProperty|String|鏉愭枡褰㈠紡|鏄瘄-
+electronicgs|String|鐢靛瓙鏉愭枡鏍煎紡|鏄瘄-
+materialSource|String|鏉愭枡鏉ユ簮娓犻亾锛堟棤.鏃狅紝鐢宠浜鸿嚜澶�.鐢宠浜鸿嚜澶囷紝鏀垮簻閮ㄩ棬鏍稿彂.鏀垮簻閮ㄩ棬鏍稿彂锛屽叾浠�.鍏朵粬锛墊鏄瘄-
+paperNum|Integer|绾歌川鏉愭枡浠芥暟|鏄瘄-
+paperGg|String|绾歌川鏉愭枡瑙勬牸|鏄瘄-
+jianmMs|String|鍑忓厤妯″紡锛堟棤.鏃狅紝鍑�.鍑忥紝鍏�.鍏嶏級|鏄瘄-
+sealWay|String|鐩栫珷鏂瑰紡|鏄瘄-
+isjianm|String|鏄惁鍑忓厤锛堝惁.鍚︼紝鏄�.鏄級|鏄瘄-
+isLack|String|鏉愭枡鏄惁瀹圭己锛堝繀瑕�.蹇呰锛岄潪蹇呰.闈炲繀瑕侊級|鏄瘄-
+ybUrl|String|鏉愭枡鍦板潃|鏄瘄-
+materialSourceSm|String|鏉ユ簮娓犻亾璇存槑|鏄瘄-
+remarkSub|String|濉姤椤荤煡|鏄瘄-
+clauseContent|String|瑕佹眰鎻愪緵鏉愭枡鐨勪緷鎹畖鏄瘄-
+summary|String|鍙楃悊鏍囧噯|鏄瘄-
+remark|String|澶囨敞|鏄瘄-
+source|Integer|浜嬮」鏉ユ簮(0.鏀垮姟缃戯紝1.鑷畾涔�)|鏄瘄-
+datumFileList|arrays|闄勪欢鍒楄〃|鏄瘄-
+&emsp;datumId|Long|鏉愭枡id|鏄瘄-
+&emsp;fileName|String|闄勪欢鍚嶇О|鏄瘄-
+&emsp;fileUrl|String|闄勪欢涓嬭浇鍦板潃|鏄瘄-
+&emsp;filetype|Integer|闄勪欢绫诲瀷 (1.绀轰緥鏍疯〃锛�2.绌虹櫧琛ㄦ牸)|鏄瘄-
+&emsp;source|Integer|闄勪欢鏉ユ簮 (0.鏀垮姟缃戯紝1.鑷畾涔�)|鏄瘄-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|鏄瘄-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|鏄瘄-
+&emsp;materialName|String|鏉愭枡鍚峾鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎浜嬮」鐢宠鏉愭枡
+
+**璇锋眰URL:** matter/datum/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎浜嬮」鐢宠鏉愭枡
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/matter/datum/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+``` 
+
+## 浜嬮」鍙楃悊鏉′欢
+
+### 鏌ヨ浜嬮」鍙楃悊鏉′欢鍒楄〃
+
+**璇锋眰URL:** matter/accept/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ浜嬮」鍙楃悊鏉′欢
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+matterId|Long|鍩虹浜嬮」琛╥d|鍚-
+matterName|String|浜嬮」鍚嶇О|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "matterId":3134,
+        "matterName":"hzziqb",
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;&emsp;matterId|Long|鍩虹浜嬮」琛╥d|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;content|String|鍙楃悊鏉′欢|-
+&emsp;&emsp;source|Integer|浜嬮」鏉ユ簮 (0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;source|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅浜嬮」鍙楃悊鏉′欢
+
+**璇锋眰URL:** matter/accept/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅浜嬮」鍙楃悊鏉′欢锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/matter/accept/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;matterId|Long|鍩虹浜嬮」琛╥d|-
+&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;content|String|鍙楃悊鏉′欢|-
+&emsp;source|Integer|浜嬮」鏉ユ簮 (0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;source|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":6306,
+            "matterId":7846,
+            "matterName":"ixu1jj",
+            "content":"ngsx83",
+            "source":1663,
+            "createTime":"2022-01-20",
+            "createUserId":2733,
+            "updateTime":"2022-01-20"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊浜嬮」鍙楃悊鏉′欢
+
+**璇锋眰URL:** matter/accept/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂颁簨椤瑰彈鐞嗘潯浠讹細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+matterId|Long|鍩虹浜嬮」琛╥d|鏄瘄-
+matterName|String|浜嬮」鍚嶇О|鏄瘄-
+content|String|鍙楃悊鏉′欢|鏄瘄-
+source|Integer|浜嬮」鏉ユ簮 (0.鏀垮姟缃戯紝1.鑷畾涔�)|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "matterId":4751,
+    "matterName":"ck29y9",
+    "content":"mpvy7g",
+    "source":4828,
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;&emsp;matterId|Long|鍩虹浜嬮」琛╥d|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;content|String|鍙楃悊鏉′欢|-
+&emsp;&emsp;source|Integer|浜嬮」鏉ユ簮 (0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎浜嬮」鍙楃悊鏉′欢
+
+**璇锋眰URL:** matter/accept/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎浜嬮」鍙楃悊鏉′欢
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/matter/accept/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 浜嬮」鏀惰垂鏍囧噯
+
+### 鏌ヨ浜嬮」鏀惰垂鏍囧噯鍒楄〃
+
+**璇锋眰URL:** matter/charges/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ浜嬮」鏀惰垂鏍囧噯
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+matterId|Long|浜嬮」鍩虹琛╩atter id|鍚-
+matterName|String|浜嬮」鍚嶇О|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "matterId":8677,
+        "matterName":"un0w0b",
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;&emsp;matterId|Long|浜嬮」鍩虹琛╩atter id|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;content|String|鏀惰垂鏍囧噯|-
+&emsp;&emsp;source|Integer|浜嬮」鏉ユ簮锛�(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;source|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅浜嬮」鏀惰垂鏍囧噯
+
+**璇锋眰URL:** matter/charges/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅浜嬮」鏀惰垂鏍囧噯锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/matter/charges/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;matterId|Long|浜嬮」鍩虹琛╩atter id|-
+&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;content|String|鏀惰垂鏍囧噯|-
+&emsp;source|Integer|浜嬮」鏉ユ簮锛�(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;source|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":2450,
+            "matterId":7827,
+            "matterName":"h01l8w",
+            "content":"2dhalp",
+            "source":52,
+            "createTime":"2022-01-20",
+            "createUserId":1089,
+            "updateTime":"2022-01-20"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊浜嬮」鏀惰垂鏍囧噯
+
+**璇锋眰URL:** matter/charges/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂颁簨椤规敹璐规爣鍑嗭細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+matterId|Long|浜嬮」鍩虹琛╩atter id|鏄瘄-
+matterName|String|浜嬮」鍚嶇О|鏄瘄-
+content|String|鏀惰垂鏍囧噯|鏄瘄-
+source|Integer|浜嬮」鏉ユ簮锛�(0.鏀垮姟缃戯紝1.鑷畾涔�)|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "matterId":7458,
+    "matterName":"o7rf01",
+    "content":"dn7ppd",
+    "source":4400,
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;&emsp;matterId|Long|浜嬮」鍩虹琛╩atter id|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;content|String|鏀惰垂鏍囧噯|-
+&emsp;&emsp;source|Integer|浜嬮」鏉ユ簮锛�(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎浜嬮」鏀惰垂鏍囧噯
+
+**璇锋眰URL:** matter/charges/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎浜嬮」鏀惰垂鏍囧噯
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/matter/charges/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 鏉愭枡闄勪欢
+
+### 鏌ヨ鏉愭枡闄勪欢鍒楄〃
+
+**璇锋眰URL:** matter/datum/file/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ鏉愭枡闄勪欢
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+datumId|Long|鏉愭枡id|鍚-
+fileName|String|闄勪欢鍚嶇О|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "datumId":6854,
+        "fileName":"cmvaf0",
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;&emsp;datumId|Long|鏉愭枡id|-
+&emsp;&emsp;fileName|String|闄勪欢鍚嶇О|-
+&emsp;&emsp;fileUrl|String|闄勪欢涓嬭浇鍦板潃|-
+&emsp;&emsp;filetype|Integer|闄勪欢绫诲瀷 (1.绀轰緥鏍疯〃锛�2.绌虹櫧琛ㄦ牸)|-
+&emsp;&emsp;source|Integer|闄勪欢鏉ユ簮 (0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;&emsp;materialName|String|鏉愭枡鍚峾-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;filetype|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;source|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅鏉愭枡闄勪欢
+
+**璇锋眰URL:** matter/datum/file/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅鏉愭枡闄勪欢锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/matter/datum/file/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;datumId|Long|鏉愭枡id|-
+&emsp;fileName|String|闄勪欢鍚嶇О|-
+&emsp;fileUrl|String|闄勪欢涓嬭浇鍦板潃|-
+&emsp;filetype|Integer|闄勪欢绫诲瀷 (1.绀轰緥鏍疯〃锛�2.绌虹櫧琛ㄦ牸)|-
+&emsp;source|Integer|闄勪欢鏉ユ簮 (0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;materialName|String|鏉愭枡鍚峾-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;filetype|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;source|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":6421,
+            "datumId":8129,
+            "fileName":"323vu4",
+            "fileUrl":"r2k16i",
+            "filetype":1122,
+            "source":7522,
+            "createTime":"2022-01-20",
+            "createUserId":6432,
+            "updateTime":"2022-01-20",
+            "materialName":"lyfq8o"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊鏉愭枡闄勪欢
+
+**璇锋眰URL:** matter/datum/file/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂版潗鏂欓檮浠讹細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+datumId|Long|鏉愭枡id|鏄瘄-
+fileName|String|闄勪欢鍚嶇О|鏄瘄-
+fileUrl|String|闄勪欢涓嬭浇鍦板潃|鏄瘄-
+filetype|Integer|闄勪欢绫诲瀷 (1.绀轰緥鏍疯〃锛�2.绌虹櫧琛ㄦ牸)|鏄瘄-
+source|Integer|闄勪欢鏉ユ簮 (0.鏀垮姟缃戯紝1.鑷畾涔�)|鏄瘄-
+materialName|String|鏉愭枡鍚峾鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "datumId":3896,
+    "fileName":"ekgiva",
+    "fileUrl":"rzkwum",
+    "filetype":3934,
+    "source":2574,
+    "materialName":"ifpw37"
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;&emsp;datumId|Long|鏉愭枡id|-
+&emsp;&emsp;fileName|String|闄勪欢鍚嶇О|-
+&emsp;&emsp;fileUrl|String|闄勪欢涓嬭浇鍦板潃|-
+&emsp;&emsp;filetype|Integer|闄勪欢绫诲瀷 (1.绀轰緥鏍疯〃锛�2.绌虹櫧琛ㄦ牸)|-
+&emsp;&emsp;source|Integer|闄勪欢鏉ユ簮 (0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;&emsp;materialName|String|鏉愭枡鍚峾-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎鏉愭枡闄勪欢
+
+**璇锋眰URL:** matter/datum/file/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎鏉愭枡闄勪欢
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/matter/datum/file/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 浜嬮」鍔炵悊娴佺▼
+
+### 鏌ヨ浜嬮」鍔炵悊娴佺▼鍒楄〃
+
+**璇锋眰URL:** matter/flowlimit/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ浜嬮」鍔炵悊娴佺▼
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+matterId|Long|浜嬮」鍩虹琛╥d|鍚-
+matterName|String|浜嬮」鍚嶇О|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "matterId":2173,
+        "matterName":"cqy04f",
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;&emsp;matterId|Long|浜嬮」鍩虹琛╥d|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;flowName|String|鍔炵悊娴佺▼|-
+&emsp;&emsp;flowTime|String|鍔炵悊鏃堕暱|-
+&emsp;&emsp;flowLimit|String|杞鏃堕檺|-
+&emsp;&emsp;flowDesc|String|鍔炵悊娴佺▼璇存槑|-
+&emsp;&emsp;source|Integer|浜嬮」鏉ユ簮(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;source|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅浜嬮」鍔炵悊娴佺▼
+
+**璇锋眰URL:** matter/flowlimit/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅浜嬮」鍔炵悊娴佺▼锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/matter/flowlimit/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;matterId|Long|浜嬮」鍩虹琛╥d|-
+&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;flowName|String|鍔炵悊娴佺▼|-
+&emsp;flowTime|String|鍔炵悊鏃堕暱|-
+&emsp;flowLimit|String|杞鏃堕檺|-
+&emsp;flowDesc|String|鍔炵悊娴佺▼璇存槑|-
+&emsp;source|Integer|浜嬮」鏉ユ簮(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;source|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":3909,
+            "matterId":3205,
+            "matterName":"h6i683",
+            "flowName":"yb5ugg",
+            "flowTime":"ev49kh",
+            "flowLimit":"a4saqm",
+            "flowDesc":"svo4o3",
+            "source":5527,
+            "createTime":"2022-01-20",
+            "createUserId":88,
+            "updateTime":"2022-01-20"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊浜嬮」鍔炵悊娴佺▼
+
+**璇锋眰URL:** matter/flowlimit/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂颁簨椤瑰姙鐞嗘祦绋嬶細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+matterId|Long|浜嬮」鍩虹琛╥d|鏄瘄-
+matterName|String|浜嬮」鍚嶇О|鏄瘄-
+flowName|String|鍔炵悊娴佺▼|鏄瘄-
+flowTime|String|鍔炵悊鏃堕暱|鏄瘄-
+flowLimit|String|杞鏃堕檺|鏄瘄-
+flowDesc|String|鍔炵悊娴佺▼璇存槑|鏄瘄-
+source|Integer|浜嬮」鏉ユ簮(0.鏀垮姟缃戯紝1.鑷畾涔�)|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "matterId":3168,
+    "matterName":"swsnrv",
+    "flowName":"vr4lg2",
+    "flowTime":"3a6cft",
+    "flowLimit":"lscqsy",
+    "flowDesc":"wsfp3o",
+    "source":273,
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;&emsp;matterId|Long|浜嬮」鍩虹琛╥d|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;flowName|String|鍔炵悊娴佺▼|-
+&emsp;&emsp;flowTime|String|鍔炵悊鏃堕暱|-
+&emsp;&emsp;flowLimit|String|杞鏃堕檺|-
+&emsp;&emsp;flowDesc|String|鍔炵悊娴佺▼璇存槑|-
+&emsp;&emsp;source|Integer|浜嬮」鏉ユ簮(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎浜嬮」鍔炵悊娴佺▼
+
+**璇锋眰URL:** matter/flowlimit/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎浜嬮」鍔炵悊娴佺▼
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/matter/flowlimit/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 浜嬮」涓粙鏈嶅姟
+
+### 鏌ヨ浜嬮」涓粙鏈嶅姟鍒楄〃
+
+**璇锋眰URL:** matter/intermediary/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ浜嬮」涓粙鏈嶅姟
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+matterId|Long|浜嬮」matter id|鍚-
+matterName|String|浜嬮」鍚嶇О|鍚-
+title|String|涓粙鏈嶅姟浜嬮」鍚嶇О|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "matterId":7330,
+        "matterName":"kzotex",
+        "title":"unhpcs",
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;&emsp;matterId|Long|浜嬮」matter id|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;title|String|涓粙鏈嶅姟浜嬮」鍚嶇О|-
+&emsp;&emsp;intermediaryRequest|String|涓粙鏈嶅姟瀹炴柦鏈烘瀯鍙婅祫璐ㄨ祫鏍艰姹倈-
+&emsp;&emsp;intermediaryRequestTime|String|鏈嶅姟鏃堕檺|-
+&emsp;&emsp;remark|String|澶囨敞|-
+&emsp;&emsp;source|Integer|浜嬮」鏉ユ簮锛�(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;source|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅浜嬮」涓粙鏈嶅姟
+
+**璇锋眰URL:** matter/intermediary/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅浜嬮」涓粙鏈嶅姟锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/matter/intermediary/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;matterId|Long|浜嬮」matter id|-
+&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;title|String|涓粙鏈嶅姟浜嬮」鍚嶇О|-
+&emsp;intermediaryRequest|String|涓粙鏈嶅姟瀹炴柦鏈烘瀯鍙婅祫璐ㄨ祫鏍艰姹倈-
+&emsp;intermediaryRequestTime|String|鏈嶅姟鏃堕檺|-
+&emsp;remark|String|澶囨敞|-
+&emsp;source|Integer|浜嬮」鏉ユ簮锛�(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;source|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":4634,
+            "matterId":4889,
+            "matterName":"3wyffd",
+            "title":"fqhmyq",
+            "intermediaryRequest":"okwe65",
+            "intermediaryRequestTime":"4pqpz8",
+            "remark":"d82t6c",
+            "source":5689,
+            "createTime":"2022-01-20",
+            "createUserId":6033,
+            "updateTime":"2022-01-20"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊浜嬮」涓粙鏈嶅姟
+
+**璇锋眰URL:** matter/intermediary/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂颁簨椤逛腑浠嬫湇鍔★細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+matterId|Long|浜嬮」matter id|鏄瘄-
+matterName|String|浜嬮」鍚嶇О|鏄瘄-
+title|String|涓粙鏈嶅姟浜嬮」鍚嶇О|鏄瘄-
+intermediaryRequest|String|涓粙鏈嶅姟瀹炴柦鏈烘瀯鍙婅祫璐ㄨ祫鏍艰姹倈鏄瘄-
+intermediaryRequestTime|String|鏈嶅姟鏃堕檺|鏄瘄-
+remark|String|澶囨敞|鏄瘄-
+source|Integer|浜嬮」鏉ユ簮锛�(0.鏀垮姟缃戯紝1.鑷畾涔�)|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "matterId":5339,
+    "matterName":"hrjf8x",
+    "title":"qrajcn",
+    "intermediaryRequest":"ugmqee",
+    "intermediaryRequestTime":"w1h2ly",
+    "remark":"umnliy",
+    "source":9668,
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;&emsp;matterId|Long|浜嬮」matter id|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;title|String|涓粙鏈嶅姟浜嬮」鍚嶇О|-
+&emsp;&emsp;intermediaryRequest|String|涓粙鏈嶅姟瀹炴柦鏈烘瀯鍙婅祫璐ㄨ祫鏍艰姹倈-
+&emsp;&emsp;intermediaryRequestTime|String|鏈嶅姟鏃堕檺|-
+&emsp;&emsp;remark|String|澶囨敞|-
+&emsp;&emsp;source|Integer|浜嬮」鏉ユ簮锛�(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎浜嬮」涓粙鏈嶅姟
+
+**璇锋眰URL:** matter/intermediary/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎浜嬮」涓粙鏈嶅姟
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/matter/intermediary/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 浜嬮」甯歌闂
+
+### 鏌ヨ浜嬮」甯歌闂鍒楄〃
+
+**璇锋眰URL:** matter/question/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ浜嬮」甯歌闂
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+matterId|Long|浜嬮」鍩虹琛╩atter id|鍚-
+matterName|String|浜嬮」鍚嶇О|鍚-
+question|String|闂|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "matterId":4001,
+        "matterName":"471szs",
+        "question":"nl7vkv",
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;&emsp;matterId|Long|浜嬮」鍩虹琛╩atter id|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;question|String|闂|-
+&emsp;&emsp;answer|String|甯歌闂|-
+&emsp;&emsp;source|Integer|浜嬮」鏉ユ簮锛�(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;source|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅浜嬮」甯歌闂
+
+**璇锋眰URL:** matter/question/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅浜嬮」甯歌闂锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/matter/question/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;matterId|Long|浜嬮」鍩虹琛╩atter id|-
+&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;question|String|闂|-
+&emsp;answer|String|甯歌闂|-
+&emsp;source|Integer|浜嬮」鏉ユ簮锛�(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;source|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":7822,
+            "matterId":7731,
+            "matterName":"914nyn",
+            "question":"gmyh3g",
+            "answer":"qf1xo0",
+            "source":829,
+            "createTime":"2022-01-20",
+            "createUserId":9937,
+            "updateTime":"2022-01-20"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊浜嬮」甯歌闂
+
+**璇锋眰URL:** matter/question/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂颁簨椤瑰父瑙侀棶棰橈細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+matterId|Long|浜嬮」鍩虹琛╩atter id|鏄瘄-
+matterName|String|浜嬮」鍚嶇О|鏄瘄-
+question|String|闂|鏄瘄-
+answer|String|甯歌闂|鏄瘄-
+source|Integer|浜嬮」鏉ユ簮锛�(0.鏀垮姟缃戯紝1.鑷畾涔�)|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "matterId":4640,
+    "matterName":"00jhnp",
+    "question":"o429o9",
+    "answer":"o1kldp",
+    "source":6338,
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;&emsp;matterId|Long|浜嬮」鍩虹琛╩atter id|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;question|String|闂|-
+&emsp;&emsp;answer|String|甯歌闂|-
+&emsp;&emsp;source|Integer|浜嬮」鏉ユ簮锛�(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎浜嬮」甯歌闂
+
+**璇锋眰URL:** matter/question/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎浜嬮」甯歌闂
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/matter/question/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 浜嬮」璁惧畾渚濇嵁
+
+### 鏌ヨ浜嬮」璁惧畾渚濇嵁鍒楄〃
+
+**璇锋眰URL:** matter/setbase/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ浜嬮」璁惧畾渚濇嵁
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+matterId|Long|浜嬮」matter id|鍚-
+matterName|String|浜嬮」鍚嶇О|鍚-
+policyName|String|娉曡鏍囬|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "matterId":3556,
+        "matterName":"1d5nhh",
+        "policyName":"5jnt3e",
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;&emsp;matterId|Long|浜嬮」matter id|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;policyName|String|娉曡鏍囬|-
+&emsp;&emsp;policyType|String|娉曡绫诲瀷锛�(1.娉曞緥锛�2.琛屾斂娉曡锛�3.鍦版柟娉曡锛�4.閮ㄩ棬瑙勭珷锛�5.鍏朵粬锛�6.鏀垮簻瑙勭珷锛�7.瑙勮寖鎬ф枃浠�)|-
+&emsp;&emsp;policyitem|String|鏉′緥|-
+&emsp;&emsp;content|String|鏉℃鍐呭|-
+&emsp;&emsp;source|Integer|浜嬮」鏉ユ簮锛�(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;policyType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;source|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅浜嬮」璁惧畾渚濇嵁
+
+**璇锋眰URL:** matter/setbase/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅浜嬮」璁惧畾渚濇嵁锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/matter/setbase/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;matterId|Long|浜嬮」matter id|-
+&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;policyName|String|娉曡鏍囬|-
+&emsp;policyType|String|娉曡绫诲瀷锛�(1.娉曞緥锛�2.琛屾斂娉曡锛�3.鍦版柟娉曡锛�4.閮ㄩ棬瑙勭珷锛�5.鍏朵粬锛�6.鏀垮簻瑙勭珷锛�7.瑙勮寖鎬ф枃浠�)|-
+&emsp;policyitem|String|鏉′緥|-
+&emsp;content|String|鏉℃鍐呭|-
+&emsp;source|Integer|浜嬮」鏉ユ簮锛�(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;policyType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;source|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":6432,
+            "matterId":2527,
+            "matterName":"ons1sf",
+            "policyName":"b6ehen",
+            "policyType":"xx0ax8",
+            "policyitem":"nyp1a1",
+            "content":"m2gx91",
+            "source":7499,
+            "createTime":"2022-01-20",
+            "createUserId":9100,
+            "updateTime":"2022-01-20"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊浜嬮」璁惧畾渚濇嵁
+
+**璇锋眰URL:** matter/setbase/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂颁簨椤硅瀹氫緷鎹細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+matterId|Long|浜嬮」matter id|鏄瘄-
+matterName|String|浜嬮」鍚嶇О|鏄瘄-
+policyName|String|娉曡鏍囬|鏄瘄-
+policyType|String|娉曡绫诲瀷锛�(1.娉曞緥锛�2.琛屾斂娉曡锛�3.鍦版柟娉曡锛�4.閮ㄩ棬瑙勭珷锛�5.鍏朵粬锛�6.鏀垮簻瑙勭珷锛�7.瑙勮寖鎬ф枃浠�)|鏄瘄-
+policyitem|String|鏉′緥|鏄瘄-
+content|String|鏉℃鍐呭|鏄瘄-
+source|Integer|浜嬮」鏉ユ簮锛�(0.鏀垮姟缃戯紝1.鑷畾涔�)|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "matterId":1721,
+    "matterName":"pbovtq",
+    "policyName":"5bqm2b",
+    "policyType":"cs39ba",
+    "policyitem":"inci0i",
+    "content":"8xrmlm",
+    "source":8483,
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|涓婚敭锛岃嚜澧為暱|-
+&emsp;&emsp;matterId|Long|浜嬮」matter id|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;policyName|String|娉曡鏍囬|-
+&emsp;&emsp;policyType|String|娉曡绫诲瀷锛�(1.娉曞緥锛�2.琛屾斂娉曡锛�3.鍦版柟娉曡锛�4.閮ㄩ棬瑙勭珷锛�5.鍏朵粬锛�6.鏀垮簻瑙勭珷锛�7.瑙勮寖鎬ф枃浠�)|-
+&emsp;&emsp;policyitem|String|鏉′緥|-
+&emsp;&emsp;content|String|鏉℃鍐呭|-
+&emsp;&emsp;source|Integer|浜嬮」鏉ユ簮锛�(0.鏀垮姟缃戯紝1.鑷畾涔�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎浜嬮」璁惧畾渚濇嵁
+
+**璇锋眰URL:** matter/setbase/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎浜嬮」璁惧畾渚濇嵁
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/matter/setbase/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 閮ㄩ棬
+
+### 鏌ヨ閮ㄩ棬鍒楄〃
+
+**璇锋眰URL:** dept/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ閮ㄩ棬
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+name|String|閮ㄩ棬鍚嶇О|鍚-
+deptAbb|String|閮ㄩ棬绠€绉皘鍚-
+deptNumber|String|閮ㄩ棬缂栧彿|鍚-
+filter|Integer|鏄惁杩囨护娌℃湁浜嬮」鐨勯儴闂�(0.鍚︼紝1.鏄�)|鍚-
+isBkb|Integer|鑳岄潬鑳屽睍绀� (0.鍚︼紝1.鏄�)|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "name":"8xbeej",
+        "deptAbb":"lk7pnx",
+        "deptNumber":"jjfxah",
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;tid|String|浠庢斂鍔$郴缁熸潵鐨勯儴闂╥d|-
+&emsp;&emsp;tname|String|浠庢斂鍔$郴缁熸潵鐨勯儴闂╪ame|-
+&emsp;&emsp;name|String|閮ㄩ棬鍚嶇О|-
+&emsp;&emsp;simpleName|String|浠庢斂鍔$郴缁熸潵鐨勫埆鍚峾-
+&emsp;&emsp;siteId|Long|绔欑偣ID|-
+&emsp;&emsp;deptAbb|String|閮ㄩ棬绠€绉皘-
+&emsp;&emsp;deptTelphone|String|閮ㄩ棬鐢佃瘽|-
+&emsp;&emsp;deptNumber|String|閮ㄩ棬缂栧彿|-
+&emsp;&emsp;isAutotable|Integer|濉崟鏈哄睍绀� (0.鍚︼紝1.鏄�) |-
+&emsp;&emsp;isOrder|Integer|棰勭害灞曠ず (0.鍚︼紝1.鏄�) |-
+&emsp;&emsp;isBkb|Integer|鑳岄潬鑳屽睍绀� (0.鍚︼紝1.鏄�) |-
+&emsp;&emsp;isWorkGuide|Integer|鍔炰簨鎸囧崡灞曠ず (0.鍚︼紝1.鏄�) |-
+&emsp;&emsp;usValid|Integer|鏄惁浣跨敤 (0.鍚︼紝1.鏄�) |-
+&emsp;&emsp;isSecphone|Integer|閮ㄩ棬鐢佃瘽鏄惁灞曠ず (0.鍚︼紝1.鏄�) |-
+&emsp;&emsp;isEnglish|Integer|鏄惁灞曠ず鑻辨枃 (0.鍚︼紝1.鏄�) |-
+&emsp;&emsp;sort|Integer|鎺掑簭|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;isAutotable|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isOrder|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isBkb|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isWorkGuide|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;usValid|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isSecphone|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isEnglish|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅閮ㄩ棬
+
+**璇锋眰URL:** dept/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅閮ㄩ棬锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/dept/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;tid|String|浠庢斂鍔$郴缁熸潵鐨勯儴闂╥d|-
+&emsp;tname|String|浠庢斂鍔$郴缁熸潵鐨勯儴闂╪ame|-
+&emsp;name|String|閮ㄩ棬鍚嶇О|-
+&emsp;simpleName|String|浠庢斂鍔$郴缁熸潵鐨勫埆鍚峾-
+&emsp;siteId|Long|绔欑偣ID|-
+&emsp;deptAbb|String|閮ㄩ棬绠€绉皘-
+&emsp;deptTelphone|String|閮ㄩ棬鐢佃瘽|-
+&emsp;deptNumber|String|閮ㄩ棬缂栧彿|-
+&emsp;isAutotable|Integer|濉崟鏈哄睍绀� (0.鍚︼紝1.鏄�) |-
+&emsp;isOrder|Integer|棰勭害灞曠ず (0.鍚︼紝1.鏄�) |-
+&emsp;isBkb|Integer|鑳岄潬鑳屽睍绀� (0.鍚︼紝1.鏄�) |-
+&emsp;isWorkGuide|Integer|鍔炰簨鎸囧崡灞曠ず (0.鍚︼紝1.鏄�) |-
+&emsp;usValid|Integer|鏄惁浣跨敤 (0.鍚︼紝1.鏄�) |-
+&emsp;isSecphone|Integer|閮ㄩ棬鐢佃瘽鏄惁灞曠ず (0.鍚︼紝1.鏄�) |-
+&emsp;isEnglish|Integer|鏄惁灞曠ず鑻辨枃 (0.鍚︼紝1.鏄�) |-
+&emsp;sort|Integer|鎺掑簭|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;isAutotable|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isOrder|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isBkb|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isWorkGuide|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;usValid|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isSecphone|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;isEnglish|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":3878,
+            "tid":"j5vugc",
+            "tname":"akwq1c",
+            "name":"euai3f",
+            "simpleName":"hkfv7v",
+            "siteId":3415,
+            "deptAbb":"w2ndhg",
+            "deptTelphone":"m3tcad",
+            "deptNumber":"xx3e0q",
+            "isAutotable":3260,
+            "isOrder":652,
+            "isBkb":655,
+            "isWorkGuide":4574,
+            "usValid":5018,
+            "isSecphone":877,
+            "isEnglish":7265,
+            "sort":9898,
+            "createTime":"2022-01-20",
+            "createUserId":715,
+            "updateTime":"2022-01-20"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊閮ㄩ棬
+
+**璇锋眰URL:** dept/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂伴儴闂細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+tid|String|浠庢斂鍔$郴缁熸潵鐨勯儴闂╥d|鍚-
+tname|String|浠庢斂鍔$郴缁熸潵鐨勯儴闂╪ame|鍚-
+name|String|閮ㄩ棬鍚嶇О|鏄瘄-
+simpleName|String|浠庢斂鍔$郴缁熸潵鐨勫埆鍚峾鍚-
+siteId|Long|绔欑偣ID|鏄瘄-
+deptAbb|String|閮ㄩ棬绠€绉皘鍚-
+deptTelphone|String|閮ㄩ棬鐢佃瘽|鍚-
+deptNumber|String|閮ㄩ棬缂栧彿|鍚-
+isAutotable|Integer|濉崟鏈哄睍绀� (0.鍚︼紝1.鏄�) |鍚-
+isOrder|Integer|棰勭害灞曠ず (0.鍚︼紝1.鏄�) |鍚-
+isBkb|Integer|鑳岄潬鑳屽睍绀� (0.鍚︼紝1.鏄�) |鍚-
+isWorkGuide|Integer|鍔炰簨鎸囧崡灞曠ず (0.鍚︼紝1.鏄�) |鍚-
+usValid|Integer|鏄惁浣跨敤 (0.鍚︼紝1.鏄�) |鏄瘄-
+isSecphone|Integer|閮ㄩ棬鐢佃瘽鏄惁灞曠ず (0.鍚︼紝1.鏄�) |鍚-
+isEnglish|Integer|鏄惁灞曠ず鑻辨枃 (0.鍚︼紝1.鏄�) |鍚-
+sort|Integer|鎺掑簭|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+  "code": 1,
+  "data": {
+    "createTime": 1643006419000,
+    "createUserId": 1,
+    "deptAbb": "mly6ov",
+    "deptNumber": "o9mdz123131w",
+    "deptTelphone": "1328444586",
+    "id": 1,
+    "isAutotable": 1,
+    "isBkb": 1,
+    "isEnglish": 1,
+    "isOrder": 1,
+    "isSecphone": 1,
+    "isWorkGuide": 1,
+    "name": "娴嬭瘯绔欑偣閮ㄩ棬",
+    "simpleName": "娴嬭瘯绔欑偣閮ㄩ棬",
+    "siteId": 1,
+    "sort": 1,
+    "tid": "pnvi0e",
+    "tname": "g8b6wr",
+    "updateTime": 1643006419000,
+    "usValid": 1
+  }
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;tid|String|浠庢斂鍔$郴缁熸潵鐨勯儴闂╥d|-
+&emsp;&emsp;tname|String|浠庢斂鍔$郴缁熸潵鐨勯儴闂╪ame|-
+&emsp;&emsp;name|String|閮ㄩ棬鍚嶇О|-
+&emsp;&emsp;simpleName|String|浠庢斂鍔$郴缁熸潵鐨勫埆鍚峾-
+&emsp;&emsp;siteId|Long|绔欑偣ID|-
+&emsp;&emsp;deptAbb|String|閮ㄩ棬绠€绉皘-
+&emsp;&emsp;deptTelphone|String|閮ㄩ棬鐢佃瘽|-
+&emsp;&emsp;deptNumber|String|閮ㄩ棬缂栧彿|-
+&emsp;&emsp;isAutotable|Integer|濉崟鏈哄睍绀� (0.鍚︼紝1.鏄�) |-
+&emsp;&emsp;isOrder|Integer|棰勭害灞曠ず (0.鍚︼紝1.鏄�) |-
+&emsp;&emsp;isBkb|Integer|鑳岄潬鑳屽睍绀� (0.鍚︼紝1.鏄�) |-
+&emsp;&emsp;isWorkGuide|Integer|鍔炰簨鎸囧崡灞曠ず (0.鍚︼紝1.鏄�) |-
+&emsp;&emsp;usValid|Integer|鏄惁浣跨敤 (0.鍚︼紝1.鏄�) |-
+&emsp;&emsp;isSecphone|Integer|閮ㄩ棬鐢佃瘽鏄惁灞曠ず (0.鍚︼紝1.鏄�) |-
+&emsp;&emsp;isEnglish|Integer|鏄惁灞曠ず鑻辨枃 (0.鍚︼紝1.鏄�) |-
+&emsp;&emsp;sort|Integer|鎺掑簭|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎閮ㄩ棬
+
+**璇锋眰URL:** dept/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎閮ㄩ棬
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/dept/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+### 閫氳繃閮ㄩ棬鑾峰彇涓氬姟鍒楄〃
+
+**璇锋眰URL:** dept/getBusinessByDept
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 閫氳繃閮ㄩ棬鑾峰彇涓氬姟鍒楄〃
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+idList|Arrays|閮ㄩ棬ids|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+{"idList":[414]}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|Object|缁撴灉闆唡
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+
+### 閫氳繃涓氬姟ids鑾峰彇閮ㄩ棬鍒嗙粍鍒楄〃
+
+**璇锋眰URL:** dept/getDeptListByBusiness
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 閫氳繃涓氬姟ids鑾峰彇閮ㄩ棬鍒嗙粍鍒楄〃
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+siteBusinessIdList|Arrays|涓氬姟ids|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+{
+  "siteBusinessIdList":[8,28]
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|Object|缁撴灉闆唡
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 绔欑偣閮ㄩ棬绐楀彛
+
+### 鏌ヨ绔欑偣閮ㄩ棬绐楀彛鍒楄〃
+
+**璇锋眰URL:** window/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ绔欑偣閮ㄩ棬绐楀彛
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+idList|Arrays|绐楀彛id鍒楄〃|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "page":1,
+        "size":10,
+         "idList":[1,2]
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;siteId|Long|绔欑偣ID|-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;&emsp;deptId|Long|閮ㄩ棬ID|-
+&emsp;&emsp;deptName|String|閮ㄩ棬鍚嶇О|-
+&emsp;&emsp;name|String|绐楀彛鍚嶇О|-
+&emsp;&emsp;englishName|String|鑻辫绐楀彛鍚峾-
+&emsp;&emsp;region|String|鍖哄煙|-
+&emsp;&emsp;englishRegion|String|鑻辫鍖哄煙|-
+&emsp;&emsp;fromnum|String|绐楀彛缂栧彿|-
+&emsp;&emsp;hongqi|Integer|绾㈡棗绐楀彛 (1.鏄紝0.鍚�)|-
+&emsp;&emsp;summary|String|澶囨敞|-
+&emsp;&emsp;building|Integer|妤兼爧|-
+&emsp;&emsp;level|Integer|妤煎眰|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;hongqi|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅绔欑偣閮ㄩ棬绐楀彛
+
+**璇锋眰URL:** window/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅绔欑偣閮ㄩ棬绐楀彛锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/window/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;siteId|Long|绔欑偣ID|-
+&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;deptId|Long|閮ㄩ棬ID|-
+&emsp;deptName|String|閮ㄩ棬鍚嶇О|-
+&emsp;name|String|绐楀彛鍚嶇О|-
+&emsp;englishName|String|鑻辫绐楀彛鍚峾-
+&emsp;region|String|鍖哄煙|-
+&emsp;englishRegion|String|鑻辫鍖哄煙|-
+&emsp;fromnum|String|绐楀彛缂栧彿|-
+&emsp;hongqi|Integer|绾㈡棗绐楀彛 (1.鏄紝0.鍚�)|-
+&emsp;summary|String|澶囨敞|-
+&emsp;building|Integer|妤兼爧|-
+&emsp;level|Integer|妤煎眰|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;hongqi|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+
+### 淇濆瓨鏇存柊绔欑偣閮ㄩ棬绐楀彛
+
+**璇锋眰URL:** window/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂扮珯鐐归儴闂ㄧ獥鍙o細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+siteId|Long|绔欑偣ID|鏄瘄-
+siteName|String|绔欑偣鍚嶇О|鏄瘄-
+deptId|Long|閮ㄩ棬ID|鏄瘄-
+deptName|String|閮ㄩ棬鍚嶇О|鏄瘄-
+name|String|绐楀彛鍚嶇О|鏄瘄-
+englishName|String|鑻辫绐楀彛鍚峾鏄瘄-
+region|String|鍖哄煙|鏄瘄-
+englishRegion|String|鑻辫鍖哄煙|鏄瘄-
+fromnum|String|绐楀彛缂栧彿|鏄瘄-
+hongqi|Integer|绾㈡棗绐楀彛 (1.鏄紝0.鍚�)|鏄瘄-
+summary|String|澶囨敞|鏄瘄-
+building|Integer|妤兼爧|鏄瘄-
+level|Integer|妤煎眰|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;siteId|Long|绔欑偣ID|-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;&emsp;deptId|Long|閮ㄩ棬ID|-
+&emsp;&emsp;deptName|String|閮ㄩ棬鍚嶇О|-
+&emsp;&emsp;name|String|绐楀彛鍚嶇О|-
+&emsp;&emsp;englishName|String|鑻辫绐楀彛鍚峾-
+&emsp;&emsp;region|String|鍖哄煙|-
+&emsp;&emsp;englishRegion|String|鑻辫鍖哄煙|-
+&emsp;&emsp;fromnum|String|绐楀彛缂栧彿|-
+&emsp;&emsp;hongqi|Integer|绾㈡棗绐楀彛 (1.鏄紝0.鍚�)|-
+&emsp;&emsp;summary|String|澶囨敞|-
+&emsp;&emsp;building|Integer|妤兼爧|-
+&emsp;&emsp;level|Integer|妤煎眰|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+
+### 鍒犻櫎绔欑偣閮ㄩ棬绐楀彛
+
+**璇锋眰URL:** window/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎绔欑偣閮ㄩ棬绐楀彛
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/window/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+
+
+### 娣诲姞涓氬姟鍒扮獥鍙�
+
+**璇锋眰URL:** window/addBusinessToWindow
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 娣诲姞涓氬姟鍒扮獥鍙�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+businessIds|String|涓氬姟ids|鏄瘄閫楀彿鍒嗛殧
+windowId|Long|绐楀彛ID|鏄瘄绐楀彛id
+
+**璇锋眰鏍蜂緥:**
+
+```
+{
+   
+
+}
+
+
+```
+
+**Response-example:**
+
+```
+...
+
+```
+
+
+### 鏌ヨ澶у巺绐楀彛鍒楄〃
+
+**璇锋眰URL:** window/subHalllist
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ褰撳墠绔欑偣鎵€鏈夋病鏈夊湪澶у巺閰嶇疆鐨勮繃鐨勭獥鍙�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-1鍏ㄩ儴
+siteId|Integer|姣忛〉鏉℃暟|鍚绔欑偣id
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "page":1,
+        "size":10,
+         "siteId":1
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;siteId|Long|绔欑偣ID|-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;&emsp;deptId|Long|閮ㄩ棬ID|-
+&emsp;&emsp;deptName|String|閮ㄩ棬鍚嶇О|-
+&emsp;&emsp;name|String|绐楀彛鍚嶇О|-
+&emsp;&emsp;englishName|String|鑻辫绐楀彛鍚峾-
+&emsp;&emsp;region|String|鍖哄煙|-
+&emsp;&emsp;englishRegion|String|鑻辫鍖哄煙|-
+&emsp;&emsp;fromnum|String|绐楀彛缂栧彿|-
+&emsp;&emsp;hongqi|Integer|绾㈡棗绐楀彛 (1.鏄紝0.鍚�)|-
+&emsp;&emsp;summary|String|澶囨敞|-
+&emsp;&emsp;building|Integer|妤兼爧|-
+&emsp;&emsp;level|Integer|妤煎眰|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;hongqi|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+}
+```
+
+
+## 宸ヤ綔浜哄憳
+
+### 鏌ヨ宸ヤ綔浜哄憳鍒楄〃
+
+**璇锋眰URL:** workman/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ宸ヤ綔浜哄憳
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+deptId|Long|閮ㄩ棬id鍙穦鍚-
+deptName|String|閮ㄩ棬鍚嶇О|鍚-
+windowId|Long|绐楀彛id鍙穦鍚-
+windowName|String|绐楀彛鍚嶇О|鍚-
+siteId|Long|绔欑偣ID|鍚-
+siteName|String|绔欑偣鍚嶇О|鍚-
+name|String|濮撳悕|鍚-
+number|String|宸ュ彿|鍚-
+modelIds|String|妯″潡id,閫楀彿鍒嗛殧|鍚-
+modelIds|String|妯″潡id,閫楀彿鍒嗛殧|鍚-
+
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "deptId":1825,
+        "deptName":"3cca81",
+        "windowId":2970,
+        "windowName":"2shv7u",
+        "siteId":4516,
+        "siteName":"o4ci2j",
+        "name":"to5b5a",
+        "number":"qrw98p",
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|--|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;loginName|Long|宸ヤ綔浜哄憳鐧诲綍鍚嶇О|-
+&emsp;&emsp;deptId|Long|閮ㄩ棬id鍙穦-
+&emsp;&emsp;deptName|String|閮ㄩ棬鍚嶇О|-
+&emsp;&emsp;windowId|Long|绐楀彛id鍙穦-
+&emsp;&emsp;windowName|String|绐楀彛鍚嶇О|-
+&emsp;&emsp;siteId|Long|绔欑偣ID|-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;&emsp;name|String|濮撳悕|-
+&emsp;&emsp;number|String|宸ュ彿|-
+&emsp;&emsp;userpost|String|鑱屽姟|-
+&emsp;&emsp;posttitle|String|鑱岀О|-
+&emsp;&emsp;politicalstatus|Integer|鏀挎不闈㈣矊 (0.涓叡鍏氬憳锛�1.涓叡棰勫鍏氬憳锛�2.鍏遍潚鍥㈠憳锛�3.鏅€氬眳姘戯紝4.鍏跺畠)|-
+&emsp;&emsp;dangyuan|Integer|鍏氬憳 (0.闈炲厷鍛橈紝1.鍏氬憳锛�2.鍏氬憳绀鸿寖宀楋紝3.鍏氬憳鍏堥攱宀楋紝99.鍏跺畠)|-
+&emsp;&emsp;dangyuanext|String|鎵╁睍淇℃伅|-
+&emsp;&emsp;idCard|String|韬唤璇�
+&emsp;&emsp;phone|String|鐢佃瘽|-
+&emsp;&emsp;mobile|String|鎵嬫満|-
+&emsp;&emsp;modelIds|String|妯″潡id,閫楀彿鍒嗛殧|-
+&emsp;&emsp;starlevel|Integer|鏄熺骇|-
+&emsp;&emsp;summary|String|涓汉绠€浠媩-
+&emsp;&emsp;photoPath|String|鐓х墖|-
+&emsp;&emsp;duty|String|宀椾綅鑱岃矗|-
+&emsp;&emsp;promise|String|鏈嶅姟鎵胯|-
+&emsp;&emsp;business|String|鍔炵悊浜嬮」|-
+&emsp;&emsp;online|Integer|鏄惁鍦ㄧ嚎锛�0.绂荤嚎锛�1.鍦ㄧ嚎锛�2.鏆傜,3.鐐瑰嚮鏆傜,4.鍥炲綊,5.鐧婚檰锛墊-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;&emsp;operatorId|String|涓€浣撳寲缁忓姙浜篿d|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;online|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅宸ヤ綔浜哄憳
+
+**璇锋眰URL:** workman/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅宸ヤ綔浜哄憳锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/workman/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;deptId|Long|閮ㄩ棬id鍙穦-
+&emsp;deptName|String|閮ㄩ棬鍚嶇О|-
+&emsp;windowId|Long|绐楀彛id鍙穦-
+&emsp;windowName|String|绐楀彛鍚嶇О|-
+&emsp;siteId|Long|绔欑偣ID|-
+&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;name|String|濮撳悕|-
+&emsp;number|String|宸ュ彿|-
+&emsp;userpost|String|鑱屽姟|-
+&emsp;posttitle|String|鑱岀О|-
+&emsp;politicalstatus|Integer|鏀挎不闈㈣矊 锛�0.涓叡鍏氬憳锛�1.涓叡棰勫鍏氬憳锛�2.鍏遍潚鍥㈠憳锛�3.鏅€氬眳姘戯紝4.鍏跺畠)|-
+&emsp;dangyuan|Integer|鍏氬憳 锛�0.闈炲厷鍛橈紝1.鍏氬憳锛�2.鍏氬憳绀鸿寖宀楋紝3.鍏氬憳鍏堥攱宀�)|-
+&emsp;idCard|String|韬唤璇�
+&emsp;phone|String|鐢佃瘽|-
+&emsp;mobile|String|鎵嬫満|-
+&emsp;starlevel|Integer|鏄熺骇|-
+&emsp;summary|String|涓汉绠€浠媩-
+&emsp;photoPath|String|鐓х墖|-
+&emsp;duty|String|宀椾綅鑱岃矗|-
+&emsp;promise|String|鏈嶅姟鎵胯|-
+&emsp;business|String|鍔炵悊浜嬮」|-
+&emsp;modelIds|String|妯″潡id,閫楀彿鍒嗛殧|-
+&emsp;online|Integer|鏄惁鍦ㄧ嚎锛�0.绂荤嚎锛�1.鍦ㄧ嚎锛�2.鏆傜,3.鐐瑰嚮鏆傜,4.鍥炲綊,5.鐧婚檰锛墊-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;operatorId|String|涓€浣撳寲缁忓姙浜篿d|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;online|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+
+### 淇濆瓨鏇存柊宸ヤ綔浜哄憳
+
+**璇锋眰URL:** workman/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂板伐浣滀汉鍛橈細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О| 绫诲瀷      | 澶囨敞                                        | 蹇呭~  |鍏跺畠
+---|---------|-------------------------------------------|-----|---
+loginName| String  | 鐢ㄦ埛鍚�                                       | 鏄�   |-
+loginPwd| String  | 瀵嗙爜                                        | 鏄�   |-
+deptId| Long    | 閮ㄩ棬id鍙�                                     | 鏄�   |-
+deptName| String  | 閮ㄩ棬鍚嶇О                                      | 鏄�   |-
+windowId| Long    | 绐楀彛id鍙�                                     | 鏄�   |-
+windowName| String  | 绐楀彛鍚嶇О                                      | 鏄�   |-
+siteId| Long    | 绔欑偣ID                                      | 鏄�   |-
+siteName| String  | 绔欑偣鍚嶇О                                      | 鏄�   |-
+name| String  | 濮撳悕                                        | 鏄�   |-
+number| String  | 宸ュ彿                                        | 鏄�   |-
+userpost| String  | 鑱屽姟                                        | 鏄�   |-
+posttitle| String  | 鑱岀О                                        | 鏄�   |-
+politicalstatus| Integer | 鏀挎不闈㈣矊 锛�0.涓叡鍏氬憳锛�1.涓叡棰勫鍏氬憳锛�2.鍏遍潚鍥㈠憳锛�3.鏅€氬眳姘戯紝4.鍏跺畠) | 鏄�   |-
+dangyuan| Integer | 鍏氬憳 锛�0.闈炲厷鍛橈紝1.鍏氬憳锛�2.鍏氬憳绀鸿寖宀楋紝3.鍏氬憳鍏堥攱宀楋紝99.鍏跺畠)     | 鏄�   |-
+idCard|String| 韬唤璇�                                       |鍚�
+dangyuanext| String  | 鍏氬憳鎵╁睍                                      | 鍚�   |-
+phone| String  | 鐢佃瘽                                        | 鏄�   |-
+mobile| String  | 鎵嬫満                                        | 鏄�   |-
+starlevel| Integer | 鏄熺骇                                        | 鏄�   |-
+summary| String  | 涓汉绠€浠�                                      | 鏄�   |-
+photoPath| String  | 鐓х墖                                        | 鏄�   |-
+duty| String  | 宀椾綅鑱岃矗                                      | 鏄�   |-
+promise| String  | 鏈嶅姟鎵胯               bn nb                  | 鏄�   |-
+business| String  | 鍔炵悊浜嬮」                                      | 鏄�   |-
+modelIds| String  | 妯″潡ids                                     | 鏄�   |-
+online| Integer | 鏄惁鍦ㄧ嚎锛�0.绂荤嚎锛�1.鍦ㄧ嚎锛�2.鏆傜,3.鐐瑰嚮鏆傜,4.鍥炲綊,5.鐧婚檰锛�     | 鏄�   |-
+operatorId|String|涓€浣撳寲缁忓姙浜篿d|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;deptId|Long|閮ㄩ棬id鍙穦-
+&emsp;&emsp;deptName|String|閮ㄩ棬鍚嶇О|-
+&emsp;&emsp;windowId|Long|绐楀彛id鍙穦-
+&emsp;&emsp;windowName|String|绐楀彛鍚嶇О|-
+&emsp;&emsp;siteId|Long|绔欑偣ID|-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;&emsp;name|String|濮撳悕|-
+&emsp;&emsp;number|String|宸ュ彿|-
+&emsp;&emsp;userpost|String|鑱屽姟|-
+&emsp;&emsp;posttitle|String|鑱岀О|-
+&emsp;&emsp;politicalstatus|Integer|鏀挎不闈㈣矊 锛�0.涓叡鍏氬憳锛�1.涓叡棰勫鍏氬憳锛�2.鍏遍潚鍥㈠憳锛�3.鏅€氬眳姘戯紝4.鍏跺畠)|-
+&emsp;&emsp;dangyuan|Integer|鍏氬憳 锛�0.闈炲厷鍛橈紝1.鍏氬憳锛�2.鍏氬憳绀鸿寖宀楋紝3.鍏氬憳鍏堥攱宀�)|-
+&emsp;&emsp;phone|String|鐢佃瘽|-
+&emsp;&emsp;mobile|String|鎵嬫満|-
+&emsp;&emsp;starlevel|Integer|鏄熺骇|-
+&emsp;&emsp;summary|String|涓汉绠€浠媩-
+&emsp;&emsp;photoPath|String|鐓х墖|-
+&emsp;&emsp;duty|String|宀椾綅鑱岃矗|-
+&emsp;&emsp;promise|String|鏈嶅姟鎵胯|-
+&emsp;&emsp;business|String|鍔炵悊浜嬮」|-
+&emsp;&emsp;online|Integer|鏄惁鍦ㄧ嚎锛�0.绂荤嚎锛�1.鍦ㄧ嚎锛�2.鏆傜,3.鐐瑰嚮鏆傜,4.鍥炲綊,5.鐧婚檰锛墊-
+&emsp;&emsp;operatorId|String|涓€浣撳寲缁忓姙浜篿d|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+
+```
+
+### 宸ヤ綔浜哄憳鐧诲綍
+
+**璇锋眰URL:** workman/doLogin
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:**
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+loginName|String|鐢ㄦ埛鍚峾鏄瘄-
+loginPwd|String|瀵嗙爜|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;deptId|Long|閮ㄩ棬id鍙穦-
+&emsp;&emsp;deptName|String|閮ㄩ棬鍚嶇О|-
+&emsp;&emsp;windowId|Long|绐楀彛id鍙穦-
+&emsp;&emsp;windowName|String|绐楀彛鍚嶇О|-
+&emsp;&emsp;siteId|Long|绔欑偣ID|-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;&emsp;name|String|濮撳悕|-
+&emsp;&emsp;number|String|宸ュ彿|-
+&emsp;&emsp;userpost|String|鑱屽姟|-
+&emsp;&emsp;posttitle|String|鑱岀О|-
+&emsp;&emsp;politicalstatus|Integer|鏀挎不闈㈣矊 锛�0.涓叡鍏氬憳锛�1.涓叡棰勫鍏氬憳锛�2.鍏遍潚鍥㈠憳锛�3.鏅€氬眳姘戯紝4.鍏跺畠)|-
+&emsp;&emsp;dangyuan|Integer|鍏氬憳 锛�0.闈炲厷鍛橈紝1.鍏氬憳锛�2.鍏氬憳绀鸿寖宀楋紝3.鍏氬憳鍏堥攱宀�)|-
+&emsp;&emsp;phone|String|鐢佃瘽|-
+&emsp;&emsp;mobile|String|鎵嬫満|-
+&emsp;&emsp;starlevel|Integer|鏄熺骇|-
+&emsp;&emsp;summary|String|涓汉绠€浠媩-
+&emsp;&emsp;photoPath|String|鐓х墖|-
+&emsp;&emsp;duty|String|宀椾綅鑱岃矗|-
+&emsp;&emsp;promise|String|鏈嶅姟鎵胯|-
+&emsp;&emsp;business|String|鍔炵悊浜嬮」|-
+&emsp;&emsp;online|Integer|鏄惁鍦ㄧ嚎锛�0.绂荤嚎锛�1.鍦ㄧ嚎锛�2.鏆傜,3.鐐瑰嚮鏆傜,4.鍥炲綊,5.鐧婚檰锛墊-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+
+### 宸ヤ綔浜哄憳瀵嗙爜淇敼
+
+**璇锋眰URL:** workman/change/password
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:**
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+loginName|String|鐢ㄦ埛鍚峾鏄瘄-
+oldPwd|String|鏃у瘑鐮亅鏄瘄-
+newPwd|String|鏂板瘑鐮亅鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+### 鍒犻櫎宸ヤ綔浜哄憳
+
+**璇锋眰URL:** workman/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎宸ヤ綔浜哄憳
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/workman/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+```
+
+### 瀵煎叆宸ヤ綔浜哄憳妯℃澘涓嬭浇
+
+**璇锋眰URL:** workman/downloadTemplate
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/x-www-form-urlencoded;charset=utf-8
+
+**绠€瑕佹弿杩�:** 宸ヤ綔浜哄憳瀵煎叆妯℃澘涓嬭浇
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/workman/downloadTemplate
+
+```
+
+**Response-example:**
+
+```
+...
+
+```
+
+### 瀵煎叆宸ヤ綔浜哄憳
+
+**璇锋眰URL:** workman/importData
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** multipart/form-data
+
+**绠€瑕佹弿杩�:** 瀵煎叆宸ヤ綔浜哄憳
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+file|file|鏂囦欢娴亅鏄瘄-
+updateSupport|boolean|鐩稿悓鏁版嵁椤规槸鍚︽洿鏂皘false|-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/workman/importData --data 'updateSupport=true'
+
+```
+
+**Response-example:**
+
+```
+...
+
+```
+
+### 瀵煎嚭宸ヤ綔浜哄憳
+
+**璇锋眰URL:** workman/exportExcel
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 瀵煎嚭宸ヤ綔浜哄憳
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+idList|Arrays|id鏁扮粍|鍚闇€瑕佸鍑虹殑澶氶」
+deptId|Long|閮ㄩ棬id鍙穦鍚鍙傛暟鏌ヨ鏉′欢
+deptName|String|閮ㄩ棬鍚嶇О|鍚鍙傛暟鏌ヨ鏉′欢
+windowId|Long|绐楀彛id鍙穦鍚鍙傛暟鏌ヨ鏉′欢
+windowName|String|绐楀彛鍚嶇О|鍚鍙傛暟鏌ヨ鏉′欢
+siteId|Long|绔欑偣ID|鍚鍙傛暟鏌ヨ鏉′欢
+siteName|String|绔欑偣鍚嶇О|鍚鍙傛暟鏌ヨ鏉′欢
+name|String|濮撳悕|鍚鍙傛暟鏌ヨ鏉′欢
+number|String|宸ュ彿|鍚鍙傛暟鏌ヨ鏉′欢
+
+**璇锋眰鏍蜂緥:**
+
+```
+{
+    idList:[1,2],
+        "deptId":2254,
+        "deptName":"57gigc",
+        "windowId":3055,
+        "windowName":"uyot73",
+        "siteId":3728,
+        "siteName":"xbwmbd",
+        "name":"4f2b4z",
+        "number":"27m0ph",
+
+}
+
+
+```
+
+**Response-example:**
+
+```
+...
+
+```
+
+## 绔欑偣涓氬姟
+
+### 鏌ヨ绔欑偣涓氬姟鍒楄〃
+
+**璇锋眰URL:** site/business/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ绔欑偣涓氬姟
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;siteId|Long|绔欑偣ID|-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;&emsp;ancestors|String|绁栫骇鍒楄〃锛岄€楀彿鍒嗛殧|-
+&emsp;&emsp;businessId|Long|涓氬姟ID|-
+&emsp;&emsp;isBusiness|Integer|涓氬姟绫诲瀷(0.涓€绾т笟鍔�,1.浜岀骇涓氬姟)|-
+&emsp;&emsp;parentId|Long|涓氬姟鐖剁骇ID|-
+&emsp;&emsp;businessName|String|涓氬姟鍚嶇О|-
+&emsp;&emsp;status|Integer|涓氬姟鐘舵€� (0.鍋滅敤锛�1.姝e父)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;isBusiness|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;status|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ヨ涓氬姟鍒楄〃锛堥潪鏍戝舰锛�
+
+**璇锋眰URL:** site/business/flatList
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ绔欑偣涓氬姟
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-1鏌ヨ鍏ㄩ儴
+siteId|Long|绔欑偣Id|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+  {
+        "siteId":12321,
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;siteId|Long|绔欑偣ID|-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;&emsp;ancestors|String|绁栫骇鍒楄〃锛岄€楀彿鍒嗛殧|-
+&emsp;&emsp;businessId|Long|涓氬姟ID|-
+&emsp;&emsp;isBusiness|Integer|涓氬姟绫诲瀷(0.涓€绾т笟鍔�,1.浜岀骇涓氬姟)|-
+&emsp;&emsp;parentId|Long|涓氬姟鐖剁骇ID|-
+&emsp;&emsp;businessName|String|涓氬姟鍚嶇О|-
+&emsp;&emsp;status|Integer|涓氬姟鐘舵€� (0.鍋滅敤锛�1.姝e父)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;isBusiness|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;status|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+
+}
+```
+
+### 鏌ョ湅绔欑偣涓氬姟
+
+**璇锋眰URL:** site/business/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅绔欑偣涓氬姟锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/site/business/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;siteId|Long|绔欑偣ID|-
+&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;ancestors|String|绁栫骇鍒楄〃锛岄€楀彿鍒嗛殧|-
+&emsp;businessId|Long|涓氬姟ID|-
+&emsp;isBusiness|Integer|涓氬姟绫诲瀷(0.涓€绾т笟鍔�,1.浜岀骇涓氬姟)|-
+&emsp;parentId|Long|涓氬姟鐖剁骇ID|-
+&emsp;businessName|String|涓氬姟鍚嶇О|-
+&emsp;status|Integer|涓氬姟鐘舵€� (0.鍋滅敤锛�1.姝e父)|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;isBusiness|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;status|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":6359,
+            "siteId":7183,
+            "siteName":"ogqt4r",
+            "ancestors":"9hbmif",
+            "businessId":3215,
+            "isBusiness":7872,
+            "parentId":3603,
+            "businessName":"lm7xuz",
+            "status":9670,
+            "createTime":"2022-01-20",
+            "createUserId":3441,
+            "updateTime":"2022-01-20"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊绔欑偣涓氬姟
+
+**璇锋眰URL:** site/business/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂扮珯鐐逛笟鍔★細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+siteId|Long|绔欑偣ID|鏄瘄-
+siteName|String|绔欑偣鍚嶇О|鏄瘄-
+ancestors|String|绁栫骇鍒楄〃锛岄€楀彿鍒嗛殧|鏄瘄-
+businessId|Long|涓氬姟ID|鏄瘄-
+isBusiness|Integer|涓氬姟绫诲瀷(0.涓€绾т笟鍔�,1.浜岀骇涓氬姟)|鏄瘄-
+parentId|Long|涓氬姟鐖剁骇ID|鏄瘄-
+businessName|String|涓氬姟鍚嶇О|鏄瘄-
+status|Integer|涓氬姟鐘舵€� (0.鍋滅敤锛�1.姝e父)|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "siteId":1528,
+    "siteName":"1tu3gc",
+    "ancestors":"3pl8ft",
+    "businessId":7906,
+    "isBusiness":7336,
+    "parentId":9290,
+    "businessName":"7cqyft",
+    "status":474,
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;siteId|Long|绔欑偣ID|-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;&emsp;ancestors|String|绁栫骇鍒楄〃锛岄€楀彿鍒嗛殧|-
+&emsp;&emsp;businessId|Long|涓氬姟ID|-
+&emsp;&emsp;isBusiness|Integer|涓氬姟绫诲瀷(0.涓€绾т笟鍔�,1.浜岀骇涓氬姟)|-
+&emsp;&emsp;parentId|Long|涓氬姟鐖剁骇ID|-
+&emsp;&emsp;businessName|String|涓氬姟鍚嶇О|-
+&emsp;&emsp;status|Integer|涓氬姟鐘舵€� (0.鍋滅敤锛�1.姝e父)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎绔欑偣涓氬姟
+
+**璇锋眰URL:** site/business/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎绔欑偣涓氬姟
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/site/business/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 涓氬姟浜嬮」鍏宠仈
+
+### 鏌ヨ涓氬姟浜嬮」鍏宠仈鍒楄〃
+
+**璇锋眰URL:** business/matter/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ涓氬姟浜嬮」鍏宠仈
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+siteId|Long|绔欑偣ID|鍚-
+siteBusinessId|Long|涓氬姟id|鍚-
+matterId|Long|浜嬮」id|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "siteId":6325,
+        "siteBusinessId":8310,
+        "matterId":7540,
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;siteId|Long|绔欑偣ID|-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;&emsp;siteBusinessId|Long|涓氬姟id|-
+&emsp;&emsp;siteBusinessName|String|涓氬姟鍚嶇О|-
+&emsp;&emsp;matterId|Long|浜嬮」id|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅涓氬姟浜嬮」鍏宠仈
+
+**璇锋眰URL:** business/matter/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅涓氬姟浜嬮」鍏宠仈锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/business/matter/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;siteId|Long|绔欑偣ID|-
+&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;siteBusinessId|Long|涓氬姟id|-
+&emsp;siteBusinessName|String|涓氬姟鍚嶇О|-
+&emsp;matterId|Long|浜嬮」id|-
+&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":1854,
+            "siteId":5756,
+            "siteName":"0qgv9z",
+            "siteBusinessId":5724,
+            "siteBusinessName":"vkd4ei",
+            "matterId":7383,
+            "matterName":"bne31q",
+            "createTime":"2022-01-20",
+            "createUserId":9528,
+            "updateTime":"2022-01-20"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊涓氬姟浜嬮」鍏宠仈
+
+**璇锋眰URL:** business/matter/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂颁笟鍔′簨椤瑰叧鑱旓細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+siteId|Long|绔欑偣ID|鏄瘄-
+siteName|String|绔欑偣鍚嶇О|鏄瘄-
+siteBusinessId|Long|涓氬姟id|鏄瘄-
+siteBusinessName|String|涓氬姟鍚嶇О|鏄瘄-
+matterId|Long|浜嬮」id|鏄瘄-
+matterName|String|浜嬮」鍚嶇О|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "siteId":3701,
+    "siteName":"1g9g6a",
+    "siteBusinessId":5174,
+    "siteBusinessName":"l9it9g",
+    "matterId":3695,
+    "matterName":"nx48a4",
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;siteId|Long|绔欑偣ID|-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+&emsp;&emsp;siteBusinessId|Long|涓氬姟id|-
+&emsp;&emsp;siteBusinessName|String|涓氬姟鍚嶇О|-
+&emsp;&emsp;matterId|Long|浜嬮」id|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎涓氬姟浜嬮」鍏宠仈
+
+**璇锋眰URL:** business/matter/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎涓氬姟浜嬮」鍏宠仈
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/business/matter/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 绐楀彛涓氬姟
+
+### 鏌ヨ绐楀彛涓氬姟鍒楄〃
+
+**璇锋眰URL:** window/business/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ绐楀彛涓氬姟
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+windowId|Long|绐楀彛id|鍚-
+siteBusinessId|Long|绔欑偣涓氬姟ID|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "windowId":608,
+        "siteBusinessId":3179,
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;windowId|Long|绐楀彛id|-
+&emsp;&emsp;windowName|String|绐楀彛鍚嶇О|-
+&emsp;&emsp;siteBusinessId|Long|绔欑偣涓氬姟ID|-
+&emsp;&emsp;businessName|String|涓氬姟鍚嶇О|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅绐楀彛涓氬姟
+
+**璇锋眰URL:** window/business/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅绐楀彛涓氬姟锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/window/business/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;windowId|Long|绐楀彛id|-
+&emsp;windowName|String|绐楀彛鍚嶇О|-
+&emsp;siteBusinessId|Long|绔欑偣涓氬姟ID|-
+&emsp;businessName|String|涓氬姟鍚嶇О|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":609,
+            "windowId":4474,
+            "windowName":"ino2e2",
+            "siteBusinessId":4469,
+            "businessName":"3y0ohl",
+            "createTime":"2022-01-20",
+            "createUserId":1459,
+            "updateTime":"2022-01-20"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊绐楀彛涓氬姟
+
+**璇锋眰URL:** window/business/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂扮獥鍙d笟鍔★細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+windowId|Long|绐楀彛id|鏄瘄-
+windowName|String|绐楀彛鍚嶇О|鏄瘄-
+siteBusinessId|Long|绔欑偣涓氬姟ID|鏄瘄-
+businessName|String|涓氬姟鍚嶇О|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "windowId":4074,
+    "windowName":"2ebok4",
+    "siteBusinessId":4104,
+    "businessName":"67os3n",
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;windowId|Long|绐楀彛id|-
+&emsp;&emsp;windowName|String|绐楀彛鍚嶇О|-
+&emsp;&emsp;siteBusinessId|Long|绔欑偣涓氬姟ID|-
+&emsp;&emsp;businessName|String|涓氬姟鍚嶇О|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎绐楀彛涓氬姟
+
+**璇锋眰URL:** window/business/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎绐楀彛涓氬姟
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/window/business/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 绐楀彛浜嬮」
+
+### 鏌ヨ绐楀彛浜嬮」鍒楄〃
+
+**璇锋眰URL:** window/matter/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ绐楀彛浜嬮」
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+windowId|Long|绐楀彛ID|鍚-
+siteMatterId|Long|绔欑偣浜嬮」ID|鍚-
+deptId|Long|閮ㄩ棬ID|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "windowId":4378,
+        "siteMatterId":4903,
+        "deptId":7226,
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;windowId|Long|绐楀彛ID|-
+&emsp;&emsp;windowName|String|绐楀彛鍚嶇О|-
+&emsp;&emsp;siteMatterId|Long|绔欑偣浜嬮」ID|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;deptId|Long|閮ㄩ棬ID|-
+&emsp;&emsp;deptName|String|閮ㄩ棬鍚嶇О|-
+&emsp;&emsp;isShow|Integer|鏄惁鏄剧ず (1.鏄紝0.鍚�)|-
+&emsp;&emsp;sort|Integer|鎺掑簭|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;isShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅绐楀彛浜嬮」
+
+**璇锋眰URL:** window/matter/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅绐楀彛浜嬮」锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/window/matter/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;windowId|Long|绐楀彛ID|-
+&emsp;windowName|String|绐楀彛鍚嶇О|-
+&emsp;siteMatterId|Long|绔欑偣浜嬮」ID|-
+&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;deptId|Long|閮ㄩ棬ID|-
+&emsp;deptName|String|閮ㄩ棬鍚嶇О|-
+&emsp;isShow|Integer|鏄惁鏄剧ず (1.鏄紝0.鍚�)|-
+&emsp;sort|Integer|鎺掑簭|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;isShow|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":6053,
+            "windowId":69,
+            "windowName":"64rwjk",
+            "siteMatterId":8665,
+            "matterName":"hjnkoq",
+            "deptId":1727,
+            "deptName":"yckvo6",
+            "isShow":9799,
+            "sort":6368,
+            "createTime":"2022-01-20",
+            "createUserId":1039,
+            "updateTime":"2022-01-20"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊绐楀彛浜嬮」
+
+**璇锋眰URL:** window/matter/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂扮獥鍙d簨椤癸細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+windowId|Long|绐楀彛ID|鏄瘄-
+windowName|String|绐楀彛鍚嶇О|鏄瘄-
+siteMatterId|Long|绔欑偣浜嬮」ID|鏄瘄-
+matterName|String|浜嬮」鍚嶇О|鏄瘄-
+deptId|Long|閮ㄩ棬ID|鏄瘄-
+deptName|String|閮ㄩ棬鍚嶇О|鏄瘄-
+isShow|Integer|鏄惁鏄剧ず (1.鏄紝0.鍚�)|鏄瘄-
+sort|Integer|鎺掑簭|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "windowId":8143,
+    "windowName":"mtv5rh",
+    "siteMatterId":6893,
+    "matterName":"epawga",
+    "deptId":5288,
+    "deptName":"ivpfm8",
+    "isShow":5062,
+    "sort":4093,
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;windowId|Long|绐楀彛ID|-
+&emsp;&emsp;windowName|String|绐楀彛鍚嶇О|-
+&emsp;&emsp;siteMatterId|Long|绔欑偣浜嬮」ID|-
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О|-
+&emsp;&emsp;deptId|Long|閮ㄩ棬ID|-
+&emsp;&emsp;deptName|String|閮ㄩ棬鍚嶇О|-
+&emsp;&emsp;isShow|Integer|鏄惁鏄剧ず (1.鏄紝0.鍚�)|-
+&emsp;&emsp;sort|Integer|鎺掑簭|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+
+### 鎵归噺淇濆瓨鏇存柊绐楀彛浜嬮」
+
+**璇锋眰URL:** window/matter/batchSave
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂扮獥鍙d簨椤癸細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+windowId|Long|绐楀彛ID|鏄瘄-
+windowName|String|绐楀彛鍚嶇О|鏄瘄-
+siteMatterId|Long|绔欑偣浜嬮」ID|鏄瘄-
+matterName|String|浜嬮」鍚嶇О|鏄瘄-
+deptId|Long|閮ㄩ棬ID|鏄瘄-
+deptName|String|閮ㄩ棬鍚嶇О|鏄瘄-
+isShow|Integer|鏄惁鏄剧ず (1.鏄紝0.鍚�)|鏄瘄-
+sort|Integer|鎺掑簭|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+[
+{
+    "windowId":1,
+    "windowName":"mtv5rh",
+    "siteMatterId":6893,
+    "matterName":"epawga",
+    "deptId":5288,
+    "deptName":"ivpfm8",
+    "isShow":1,
+    "sort":1,
+}]
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鎵归噺鏂板鎴愬姛",
+    "code":1,
+    "data":{}
+    }
+}
+
+```
+
+### 鍒犻櫎绐楀彛浜嬮」
+
+**璇锋眰URL:** window/matter/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎绐楀彛浜嬮」
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/window/matter/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 鐭俊璁剧疆
+
+### 鏌ヨ鐭俊璁剧疆鍒楄〃
+
+**璇锋眰URL:** sms/set/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ鐭俊璁剧疆
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+siteId|Long|绔欑偣id|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+  {
+        "siteId":7832,
+     
+  }
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;sign|String|鐭俊绛惧悕|-
+&emsp;&emsp;lastnum|Long|鍓╀綑鐭俊鏉℃暟|-
+&emsp;&emsp;username|String|鐢ㄦ埛鍚峾-
+&emsp;&emsp;messageoff|Integer|鐭俊寮€鍏� (1.寮€,0.鍏�)|-
+&emsp;&emsp;siteId|Long|绔欑偣id|-
+&emsp;&emsp;smsplatform|Integer|鐭俊骞冲彴 (1.瀹硅仈,2.闃块噷浜�,3.绉诲姩)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;messageoff|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+&emsp;smsplatform|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 淇濆瓨鏇存柊鐭俊璁剧疆
+
+**璇锋眰URL:** sms/set/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂扮煭淇¤缃細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+siteId|Long|绔欑偣id|鏄瘄-
+siteName|String|绔欑偣鍚嶇О|鏄瘄-
+messageoff|Integer|鐭俊寮€鍏� (1.寮€,0.鍏�)|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+{
+    "siteId":2436,
+    "siteName":"td3b9x",
+    "messageoff":0,
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;sign|String|鐭俊绛惧悕|-
+&emsp;&emsp;lastnum|Long|鍓╀綑鐭俊鏉℃暟|-
+&emsp;&emsp;username|String|鐢ㄦ埛鍚峾-
+&emsp;&emsp;messageoff|Integer|鐭俊寮€鍏� (1.寮€,0.鍏�)|-
+&emsp;&emsp;siteId|Long|绔欑偣id|-
+&emsp;&emsp;smsplatform|Integer|鐭俊骞冲彴 (1.瀹硅仈,2.闃块噷浜�,3.绉诲姩)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎鐭俊璁剧疆
+
+**璇锋眰URL:** sms/set/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎鐭俊璁剧疆
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/sms/set/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 鐭俊妯℃澘
+
+### 鏌ヨ鐭俊妯℃澘鍒楄〃
+
+**璇锋眰URL:** sms/template/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ鐭俊妯℃澘
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+siteid|Long|绔欑偣ID|鍚-
+code|String|妯℃澘code|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "siteid":5023,
+        "code":"aystj7",
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;siteid|Long|绔欑偣ID|-
+&emsp;&emsp;code|String|妯℃澘code|-
+&emsp;&emsp;summary|String|澶囨敞|-
+&emsp;&emsp;content|String|鍐呭|-
+&emsp;&emsp;type|Integer|妯℃澘閫夋嫨 (1.棰勭害鎴愬姛鐭俊,2.鍙栧彿鎴愬姛鐭俊,3.涓磋繎鍙彿鐭俊)|-
+&emsp;&emsp;source|Integer|绯荤粺鏉ユ簮(1.鎺掑彿绯荤粺,2.鍙栦欢绯荤粺锛墊-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;type|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅鐭俊妯℃澘
+
+**璇锋眰URL:** sms/template/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅鐭俊妯℃澘锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/sms/template/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;siteid|Long|绔欑偣ID|-
+&emsp;code|String|妯℃澘code|-
+&emsp;summary|String|澶囨敞|-
+&emsp;content|String|鍐呭|-
+&emsp;type|Integer|妯℃澘閫夋嫨 (1.棰勭害鎴愬姛鐭俊,2.鍙栧彿鎴愬姛鐭俊,3.涓磋繎鍙彿鐭俊)|-
+&emsp;source|Integer|绯荤粺鏉ユ簮(1.鎺掑彿绯荤粺,2.鍙栦欢绯荤粺锛墊-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;siteName|String|绔欑偣鍚嶇О|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;type|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":9282,
+            "siteid":286,
+            "code":"ek95u9",
+            "summary":"2eulo7",
+            "content":"dqmtxi",
+            "type":3013,
+            "source":2256,
+            "createTime":"2022-01-20",
+            "createUserId":1265,
+            "updateTime":"2022-01-20",
+            "siteName":"480o1d"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊鐭俊妯℃澘
+
+**璇锋眰URL:** sms/template/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂扮煭淇℃ā鏉匡細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+siteid|Long|绔欑偣ID|鏄瘄-
+code|String|妯℃澘code|鏄瘄-
+summary|String|澶囨敞|鏄瘄-
+content|String|鍐呭|鏄瘄-
+type|Integer|妯℃澘閫夋嫨 (1.棰勭害鎴愬姛鐭俊,2.鍙栧彿鎴愬姛鐭俊,3.涓磋繎鍙彿鐭俊)|鏄瘄-
+source|Integer|绯荤粺鏉ユ簮(1.鎺掑彿绯荤粺,2.鍙栦欢绯荤粺锛墊鏄瘄-
+siteName|String|绔欑偣鍚嶇О|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "siteid":555,
+    "code":"61ggk9",
+    "summary":"pjd65w",
+    "content":"c5ebwu",
+    "type":4127,
+    "source":2791,
+    "siteName":"dl66lx"
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;siteid|Long|绔欑偣ID|-
+&emsp;&emsp;code|String|妯℃澘code|-
+&emsp;&emsp;summary|String|澶囨敞|-
+&emsp;&emsp;content|String|鍐呭|-
+&emsp;&emsp;type|Integer|妯℃澘閫夋嫨 (1.棰勭害鎴愬姛鐭俊,2.鍙栧彿鎴愬姛鐭俊,3.涓磋繎鍙彿鐭俊)|-
+&emsp;&emsp;source|Integer|绯荤粺鏉ユ簮(1.鎺掑彿绯荤粺,2.鍙栦欢绯荤粺锛墊-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎鐭俊妯℃澘
+
+**璇锋眰URL:** sms/template/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎鐭俊妯℃澘
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/sms/template/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 鑺傚亣鏃�
+
+### 鏌ヨ鑺傚亣鏃ュ垪琛�
+
+**璇锋眰URL:** holiday/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ鑺傚亣鏃�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-
+siteId|Long|绔欑偣ID|鍚-
+name|String|鑺傛棩鍚嶇О|鍚-
+year|Integer|骞翠唤|鍚-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "siteId":8753,
+        "name":"3mddm4",
+        "year":4926,
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;siteId|Long|绔欑偣ID|-
+&emsp;&emsp;name|String|鑺傛棩鍚嶇О|-
+&emsp;&emsp;summary|String|澶囨敞|-
+&emsp;&emsp;year|Integer|骞翠唤|-
+&emsp;&emsp;startTime|Date|寮€濮嬫椂闂磡-
+&emsp;&emsp;endTime|Date|缁撴潫鏃堕棿|-
+&emsp;&emsp;workorholiday|Integer|鏄惁宸ヤ綔鏃ワ紙0.鑺傚亣鏃�,1.宸ヤ綔鏃�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅鑺傚亣鏃�
+
+**璇锋眰URL:** holiday/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅鑺傚亣鏃ワ紝杩斿洖瀹炰緥璇︾粏淇℃伅
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/holiday/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;siteId|Long|绔欑偣ID|-
+&emsp;name|String|鑺傛棩鍚嶇О|-
+&emsp;summary|String|澶囨敞|-
+&emsp;year|Integer|骞翠唤|-
+&emsp;startTime|Date|寮€濮嬫椂闂磡-
+&emsp;endTime|Date|缁撴潫鏃堕棿|-
+&emsp;workorholiday|Integer|鏄惁宸ヤ綔鏃ワ紙0.鑺傚亣鏃�,1.宸ヤ綔鏃�)|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":9570,
+            "siteId":6109,
+            "name":"bhjyt6",
+            "summary":"vwtu13",
+            "year":4021,
+            "startTime":"2022-01-20",
+            "endTime":"2022-01-20",
+            "workorholiday":9042,
+            "createTime":"2022-01-20",
+            "createUserId":5336,
+            "updateTime":"2022-01-20"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊鑺傚亣鏃�
+
+**璇锋眰URL:** holiday/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂拌妭鍋囨棩锛歩d涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+siteId|Long|绔欑偣ID|鏄瘄-
+name|String|鑺傛棩鍚嶇О|鏄瘄-
+summary|String|澶囨敞|鏄瘄-
+year|Integer|骞翠唤|鏄瘄-
+startTime|Date|寮€濮嬫椂闂磡鏄瘄-
+endTime|Date|缁撴潫鏃堕棿|鏄瘄-
+workorholiday|Integer|鏄惁宸ヤ綔鏃ワ紙0.鑺傚亣鏃�,1.宸ヤ綔鏃�)|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "siteId":2820,
+    "name":"4fyqim",
+    "summary":"vw50f4",
+    "year":3721,
+    "startTime":"2022-01-20",
+    "endTime":"2022-01-20",
+    "workorholiday":6137,
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;siteId|Long|绔欑偣ID|-
+&emsp;&emsp;name|String|鑺傛棩鍚嶇О|-
+&emsp;&emsp;summary|String|澶囨敞|-
+&emsp;&emsp;year|Integer|骞翠唤|-
+&emsp;&emsp;startTime|Date|寮€濮嬫椂闂磡-
+&emsp;&emsp;endTime|Date|缁撴潫鏃堕棿|-
+&emsp;&emsp;workorholiday|Integer|鏄惁宸ヤ綔鏃ワ紙0.鑺傚亣鏃�,1.宸ヤ綔鏃�)|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎鑺傚亣鏃�
+
+**璇锋眰URL:** holiday/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎鑺傚亣鏃�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/holiday/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 浜у搧
+
+### 鏌ヨ浜у搧鍒楄〃
+
+**璇锋眰URL:** product/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ浜у搧
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-1涓烘煡璇㈡墍鏈�
+
+**璇锋眰鏍蜂緥:**
+
+```
+  {
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|涓婚敭ID锛屼富閿紝鑷闀縷-
+&emsp;&emsp;productName|String|浜у搧鍚嶇О|-
+&emsp;&emsp;productCode|String|浜у搧缂栫爜|-
+&emsp;&emsp;productRemark|String|澶囨敞|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;updateUserId|Long|鏇存柊鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|鏇存柊鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅浜у搧
+
+**璇锋眰URL:** product/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅浜у搧锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/product/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|涓婚敭ID锛屼富閿紝鑷闀縷-
+&emsp;productName|String|浜у搧鍚嶇О|-
+&emsp;productCode|String|浜у搧缂栫爜|-
+&emsp;productRemark|String|澶囨敞|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;updateUserId|Long|鏇存柊鐢ㄦ埛|-
+&emsp;updateTime|Date|鏇存柊鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":8828,
+            "productName":"hym13l",
+            "productCode":"foq4iy",
+            "productRemark":"hohx3r",
+            "createUserId":2201,
+            "createTime":"2022-05-24",
+            "updateUserId":4705,
+            "updateTime":"2022-05-24"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊浜у搧
+
+**璇锋眰URL:** product/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂颁骇鍝侊細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+productName|String|浜у搧鍚嶇О|鏄瘄-
+productCode|String|浜у搧缂栫爜|鏄瘄-
+productRemark|String|澶囨敞|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "productName":"m0rlar",
+    "productCode":"ah1bb7",
+    "productRemark":"13qrvl",
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|涓婚敭ID锛屼富閿紝鑷闀縷-
+&emsp;&emsp;productName|String|浜у搧鍚嶇О|-
+&emsp;&emsp;productCode|String|浜у搧缂栫爜|-
+&emsp;&emsp;productRemark|String|澶囨敞|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;updateUserId|Long|鏇存柊鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|鏇存柊鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎浜у搧
+
+**璇锋眰URL:** product/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎浜у搧
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/product/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 绯荤粺鍩虹鐨偆
+
+### 鏌ヨ绯荤粺鍩虹鐨偆鍒楄〃
+
+**璇锋眰URL:** skin/base/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ绯荤粺鍩虹鐨偆
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-1涓哄叏閮�
+productCode|String|浜у搧缂栫爜|鍚pdj=鎺掗槦鏈�;ckp=绐楀彛灞�;hjq=鍛煎彨鍣�;jzxsp=闆嗕腑鏄剧ず灞�;dsj=瀵艰鏈�;pjq=璇勭骇鍣�;zzfwzd=鑷姪鏈嶅姟缁堢;tdj=濉崟鏈�;ybj=鏍疯〃鏈�;
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "page":1,
+        "size":10,
+        "productCode":"pdj"
+        
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;categoryId|Long|鎵€灞炵绫�,鏉ユ簮绉嶇被|-
+&emsp;&emsp;productId|Long|浜у搧id|-
+&emsp;&emsp;productName|String|浜у搧鍚嶇О|-
+&emsp;&emsp;cssFilePath|String|css妯℃澘鍚堟垚鍚庢枃浠跺湴鍧€|-
+&emsp;&emsp;imageResolution|String|鍒嗚鲸鐜� (1.1920*1080锛�2.1080*1920锛�3.1280*1280)|-
+&emsp;&emsp;previewImagePath|String|棰勮鍥剧墖|-
+&emsp;&emsp;sortNum|Integer|鎺掑簭缂栧彿|-
+&emsp;&emsp;skinFieldList|Arrays|鐨偆灞炴€у垪琛▅-
+&emsp;&emsp;&emsp;id|Long|ID|-
+&emsp;&emsp;&emsp;skinId|Long|鐨偆id|-
+&emsp;&emsp;&emsp;templateId|Long|妯℃澘id,涓嶄负绌烘椂涓烘ā鏉块厤缃睘鎬-
+&emsp;&emsp;&emsp;fieldCode|String|瀛楁缂栫爜|-
+&emsp;&emsp;&emsp;fieldName|String|瀛楁鍚嶇О|-
+&emsp;&emsp;&emsp;fieldType|String|鏁版嵁绫诲瀷锛�1.棰滆壊锛�2.鍥剧墖鍦板潃锛墊-
+&emsp;&emsp;&emsp;fieldValue|String|瀛楁鍊紎-
+&emsp;&emsp;&emsp;fieldLen|Integer|鏁版嵁闀垮害锛岄粯璁�100|-
+&emsp;&emsp;&emsp;fieldNull|Integer|鏄惁鍏佽涓虹┖锛�0鍚�1鏄瘄-
+&emsp;&emsp;&emsp;fieldOrderNo|String|鎺掑簭鍙穦-
+&emsp;&emsp;&emsp;remark|String|澶囨敞|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;&emsp;name|String|浜у搧鐨偆鍚嶇О锛屽敮涓€涓斾笉涓虹┖|-
+dict|object|瀛楀吀瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    }
+}
+```
+
+### 鏌ョ湅绯荤粺鍩虹鐨偆
+
+**璇锋眰URL:** skin/base/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅绯荤粺鍩虹鐨偆锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+    http://localhost/skin/base/info?id=549
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;categoryId|Long|鎵€灞炵绫�,鏉ユ簮绉嶇被|-
+&emsp;productId|Long|浜у搧id|-
+&emsp;productName|String|浜у搧鍚嶇О|-
+&emsp;cssFilePath|String|css妯℃澘鍚堟垚鍚庢枃浠跺湴鍧€|-
+&emsp;sortNum|Integer|鎺掑簭缂栧彿|-
+&emsp;name|String|浜у搧鐨偆鍚嶇О锛屽敮涓€涓斾笉涓虹┖|-
+&emsp;imageResolution|String|鍒嗚鲸鐜� (1.1920*1080锛�2.1080*1920锛�3.1280*1280)|-
+&emsp;previewImagePath|String|棰勮鍥剧墖|-
+&emsp;skinFieldList|Arrays|鐨偆灞炴€у垪琛▅-
+&emsp;&emsp;id|Long|ID|-
+&emsp;&emsp;skinId|Long|鐨偆id|-
+&emsp;&emsp;templateId|Long|妯℃澘id,涓嶄负绌烘椂涓烘ā鏉块厤缃睘鎬-
+&emsp;&emsp;fieldCode|String|瀛楁缂栫爜|-
+&emsp;&emsp;fieldName|String|瀛楁鍚嶇О|-
+&emsp;&emsp;fieldType|String|鏁版嵁绫诲瀷锛�1.棰滆壊锛�2.鍥剧墖鍦板潃锛墊-
+&emsp;&emsp;fieldValue|String|瀛楁鍊紎-
+&emsp;&emsp;fieldLen|Integer|鏁版嵁闀垮害锛岄粯璁�100|-
+&emsp;&emsp;fieldNull|Integer|鏄惁鍏佽涓虹┖锛�0鍚�1鏄瘄-
+&emsp;&emsp;fieldOrderNo|String|鎺掑簭鍙穦-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;name|String|浜у搧鐨偆鍚嶇О锛屽敮涓€涓斾笉涓虹┖|-
+dict|object|瀛楀吀瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":9178,
+            "categoryId":1060,
+            "productId":870,
+            "productName":"bts4lb",
+            "cssFilePath":"miafc3",
+            "sortNum":749,
+            "createTime":"2022-05-24",
+            "createUserId":3251,
+            "updateTime":"2022-05-24",
+            "name":"srh4xi"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊绯荤粺鍩虹鐨偆
+
+**璇锋眰URL:** skin/base/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂扮郴缁熷熀纭€鐨偆锛歩d涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+categoryId|Long|鎵€灞炵绫�,鏉ユ簮绉嶇被|鏄瘄-
+productId|Long|浜у搧id|鏄瘄-
+productName|String|浜у搧鍚嶇О|鏄瘄-
+cssFilePath|String|css妯℃澘鍚堟垚鍚庢枃浠跺湴鍧€|鏄瘄-
+sortNum|Integer|鎺掑簭缂栧彿|鏄瘄-
+name|String|浜у搧鐨偆鍚嶇О锛屽敮涓€涓斾笉涓虹┖|鏄瘄-
+imageResolution|String|鍒嗚鲸鐜� (1.1920*1080锛�2.1080*1920锛�3.1280*1280)|鏄瘄-
+previewImagePath|String|棰勮鍥剧墖|鏄瘄-
+skinFieldList|Arrays|鐨偆灞炴€у垪琛▅鏄瘄-
+&emsp;id|Long|ID|鏄瘄-
+&emsp;skinId|Long|鐨偆id|鏄瘄-
+&emsp;templateId|Long|妯℃澘id,涓嶄负绌烘椂涓烘ā鏉块厤缃睘鎬鍚-
+&emsp;fieldCode|String|瀛楁缂栫爜|鏄瘄-
+&emsp;fieldName|String|瀛楁鍚嶇О|鏄瘄-
+&emsp;fieldType|String|鏁版嵁绫诲瀷锛�1.棰滆壊锛�2.鍥剧墖鍦板潃锛墊鏄瘄-
+&emsp;fieldValue|String|瀛楁鍊紎鏄瘄-
+&emsp;fieldLen|Integer|鏁版嵁闀垮害锛岄粯璁�100|鏄瘄-
+&emsp;fieldNull|Integer|鏄惁鍏佽涓虹┖锛�0鍚�1鏄瘄鏄瘄-
+&emsp;fieldOrderNo|String|鎺掑簭鍙穦鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "categoryId":7334,
+    "productId":8273,
+    "productName":"ug744s",
+    "cssFilePath":"m5cctt",
+    "sortNum":9498,
+    "name":"grw4yu"
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;categoryId|Long|鎵€灞炵绫�,鏉ユ簮绉嶇被|-
+&emsp;&emsp;productId|Long|浜у搧id|-
+&emsp;&emsp;productName|String|浜у搧鍚嶇О|-
+&emsp;&emsp;cssFilePath|String|css妯℃澘鍚堟垚鍚庢枃浠跺湴鍧€|-
+&emsp;&emsp;sortNum|Integer|鎺掑簭缂栧彿|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;&emsp;name|String|浜у搧鐨偆鍚嶇О锛屽敮涓€涓斾笉涓虹┖|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎绯荤粺鍩虹鐨偆
+
+**璇锋眰URL:** skin/base/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎绯荤粺鍩虹鐨偆
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+    http://localhost:8080/skin/base/delete?id=1'
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 绯荤粺鐨偆妯℃澘
+
+### 鏌ヨ绯荤粺鐨偆妯℃澘鍒楄〃
+
+**璇锋眰URL:** skin/template/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ绯荤粺鐨偆妯℃澘
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-1
+
+**璇锋眰鏍蜂緥:**
+
+```
+  {
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;productId|Long|浜у搧ID|-
+&emsp;&emsp;productName|String|浜у搧鍚嶇О|-
+&emsp;&emsp;templateName|String|妯℃澘鍚嶇О|-
+&emsp;&emsp;skinFieldList|Arrays|鐨偆灞炴€у垪琛▅-
+&emsp;&emsp;&emsp;id|Long|ID|-
+&emsp;&emsp;&emsp;skinId|Long|鐨偆id|-
+&emsp;&emsp;&emsp;templateId|Long|妯℃澘id,涓嶄负绌烘椂涓烘ā鏉块厤缃睘鎬-
+&emsp;&emsp;&emsp;fieldCode|String|瀛楁缂栫爜|-
+&emsp;&emsp;&emsp;fieldName|String|瀛楁鍚嶇О|-
+&emsp;&emsp;&emsp;fieldType|String|鏁版嵁绫诲瀷锛�1.棰滆壊锛�2.鍥剧墖鍦板潃锛墊-
+&emsp;&emsp;&emsp;fieldValue|String|瀛楁鍊紎-
+&emsp;&emsp;&emsp;fieldLen|Integer|鏁版嵁闀垮害锛岄粯璁�100|-
+&emsp;&emsp;&emsp;fieldNull|Integer|鏄惁鍏佽涓虹┖锛�0鍚�1鏄瘄-
+&emsp;&emsp;&emsp;fieldOrderNo|String|鎺掑簭鍙穦-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅绯荤粺鐨偆妯℃澘
+
+**璇锋眰URL:** skin/template/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅绯荤粺鐨偆妯℃澘锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/skin/template/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;productId|Long|浜у搧ID|-
+&emsp;productName|String|浜у搧鍚嶇О|-
+&emsp;templateName|String|妯℃澘鍚嶇О|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":2387,
+            "productId":2127,
+            "productName":"k1oyub",
+            "templateName":"r8wvjv",
+            "createTime":"2022-05-24",
+            "createUserId":9107,
+            "updateTime":"2022-05-24"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊绯荤粺鐨偆妯℃澘
+
+**璇锋眰URL:** skin/template/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂扮郴缁熺毊鑲ゆā鏉匡細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+productId|Long|浜у搧ID|鏄瘄-
+productName|String|浜у搧鍚嶇О|鏄瘄-
+templateName|String|妯℃澘鍚嶇О|鏄瘄-
+skinFieldList|Arrays|鐨偆灞炴€у垪琛▅鏄瘄-
+&emsp;id|Long|ID|鏄瘄-
+&emsp;skinId|Long|鐨偆id|鏄瘄-
+&emsp;templateId|Long|妯℃澘id,涓嶄负绌烘椂涓烘ā鏉块厤缃睘鎬鍚-
+&emsp;fieldCode|String|瀛楁缂栫爜|鏄瘄-
+&emsp;fieldName|String|瀛楁鍚嶇О|鏄瘄-
+&emsp;fieldType|String|鏁版嵁绫诲瀷锛�1.棰滆壊锛�2.鍥剧墖鍦板潃锛墊鏄瘄-
+&emsp;fieldValue|String|瀛楁鍊紎鏄瘄-
+&emsp;fieldLen|Integer|鏁版嵁闀垮害锛岄粯璁�100|鏄瘄-
+&emsp;fieldNull|Integer|鏄惁鍏佽涓虹┖锛�0鍚�1鏄瘄鏄瘄-
+&emsp;fieldOrderNo|String|鎺掑簭鍙穦鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+{
+    "productId":9859,
+    "productName":"u0u2tk",
+    "templateName":"uu2uz9",
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;productId|Long|浜у搧ID|-
+&emsp;&emsp;productName|String|浜у搧鍚嶇О|-
+&emsp;&emsp;templateName|String|妯℃澘鍚嶇О|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎绯荤粺鐨偆妯℃澘
+
+**璇锋眰URL:** skin/template/delete
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎绯荤粺鐨偆妯℃澘
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+    http://localhost:8080/skin/template/delete?id=1'
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 鐨偆灞炴€у瓧娈甸厤缃�
+
+### 鏌ヨ鐨偆灞炴€у瓧娈甸厤缃垪琛�
+
+**璇锋眰URL:** skin/field/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ鐨偆灞炴€у瓧娈甸厤缃�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-1鏌ヨ鎵€鏈�
+skinId|Long|浜у搧鐨偆ID|鍚
+templateId|Long|浜у搧妯℃澘ID|鍚
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+  {
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;skinId|Long|鐨偆id|-
+&emsp;&emsp;templateId|Long|妯℃澘id,涓嶄负绌烘椂涓烘ā鏉块厤缃睘鎬-
+&emsp;&emsp;fieldCode|String|瀛楁缂栫爜|-
+&emsp;&emsp;fieldName|String|瀛楁鍚嶇О|-
+&emsp;&emsp;fieldType|String|鏁版嵁绫诲瀷锛�1.棰滆壊锛�2.鍥剧墖鍦板潃锛墊-
+&emsp;&emsp;fieldValue|String|瀛楁鍊紎-
+&emsp;&emsp;fieldLen|Integer|鏁版嵁闀垮害锛岄粯璁�100|-
+&emsp;&emsp;fieldNull|Integer|鏄惁鍏佽涓虹┖锛�0鍚�1鏄瘄-
+&emsp;&emsp;fieldOrderNo|String|鎺掑簭鍙穦-
+&emsp;&emsp;remark|String|澶囨敞|-
+&emsp;&emsp;enabled|Integer|鏄惁鍚敤锛�0鍚�1鏄瘄-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;&emsp;updateUserId|Long|淇敼鐢ㄦ埛|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;fieldType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅鐨偆灞炴€у瓧娈甸厤缃�
+
+**璇锋眰URL:** skin/field/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅鐨偆灞炴€у瓧娈甸厤缃紝杩斿洖瀹炰緥璇︾粏淇℃伅
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/skin/field/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;skinId|Long|鐨偆id|-
+&emsp;templateId|Long|妯℃澘id,涓嶄负绌烘椂涓烘ā鏉块厤缃睘鎬-
+&emsp;fieldCode|String|瀛楁缂栫爜|-
+&emsp;fieldName|String|瀛楁鍚嶇О|-
+&emsp;fieldType|String|鏁版嵁绫诲瀷锛�1.棰滆壊锛�2.鍥剧墖鍦板潃锛墊-
+&emsp;fieldValue|String|瀛楁鍊紎-
+&emsp;fieldLen|Integer|鏁版嵁闀垮害锛岄粯璁�100|-
+&emsp;fieldNull|Integer|鏄惁鍏佽涓虹┖锛�0鍚�1鏄瘄-
+&emsp;fieldOrderNo|String|鎺掑簭鍙穦-
+&emsp;remark|String|澶囨敞|-
+&emsp;enabled|Integer|鏄惁鍚敤锛�0鍚�1鏄瘄-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;updateUserId|Long|淇敼鐢ㄦ埛|-
+dict|object|瀛楀吀瀵硅薄|-
+&emsp;fieldType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":3005,
+            "skinId":1939,
+            "templateId":1491,
+            "fieldCode":"qts13r",
+            "fieldName":"x744d8",
+            "fieldType":"v5fddy",
+            "fieldValue":"taerzd",
+            "fieldLen":2061,
+            "fieldNull":462,
+            "fieldOrderNo":"m96lxf",
+            "remark":"eezl03",
+            "enabled":2982,
+            "createTime":"2022-05-24",
+            "createUserId":7715,
+            "updateTime":"2022-05-24",
+            "updateUserId":3863
+        }
+}
+```
+
+### 淇濆瓨鏇存柊鐨偆灞炴€у瓧娈甸厤缃�
+
+**璇锋眰URL:** skin/field/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂扮毊鑲ゅ睘鎬у瓧娈甸厤缃細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+skinId|Long|鐨偆id|鏄瘄-
+templateId|Long|妯℃澘id,涓嶄负绌烘椂涓烘ā鏉块厤缃睘鎬鏄瘄-
+fieldCode|String|瀛楁缂栫爜|鏄瘄-
+fieldName|String|瀛楁鍚嶇О|鏄瘄-
+fieldType|String|鏁版嵁绫诲瀷锛�1.棰滆壊锛�2.鍥剧墖鍦板潃锛墊鏄瘄-
+fieldValue|String|瀛楁鍊紎鏄瘄-
+fieldLen|Integer|鏁版嵁闀垮害锛岄粯璁�100|鏄瘄-
+fieldNull|Integer|鏄惁鍏佽涓虹┖锛�0鍚�1鏄瘄鏄瘄-
+fieldOrderNo|String|鎺掑簭鍙穦鏄瘄-
+remark|String|澶囨敞|鏄瘄-
+enabled|Integer|鏄惁鍚敤锛�0鍚�1鏄瘄鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "skinId":6333,
+    "templateId":6493,
+    "fieldCode":"2psfz0",
+    "fieldName":"wp1zqc",
+    "fieldType":"ngy4jx",
+    "fieldValue":"srpx1u",
+    "fieldLen":1626,
+    "fieldNull":2283,
+    "fieldOrderNo":"vagivy",
+    "remark":"byhxb5",
+    "enabled":3333,
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;skinId|Long|鐨偆id|-
+&emsp;&emsp;templateId|Long|妯℃澘id,涓嶄负绌烘椂涓烘ā鏉块厤缃睘鎬-
+&emsp;&emsp;fieldCode|String|瀛楁缂栫爜|-
+&emsp;&emsp;fieldName|String|瀛楁鍚嶇О|-
+&emsp;&emsp;fieldType|String|鏁版嵁绫诲瀷锛�1.棰滆壊锛�2.鍥剧墖鍦板潃锛墊-
+&emsp;&emsp;fieldValue|String|瀛楁鍊紎-
+&emsp;&emsp;fieldLen|Integer|鏁版嵁闀垮害锛岄粯璁�100|-
+&emsp;&emsp;fieldNull|Integer|鏄惁鍏佽涓虹┖锛�0鍚�1鏄瘄-
+&emsp;&emsp;fieldOrderNo|String|鎺掑簭鍙穦-
+&emsp;&emsp;remark|String|澶囨敞|-
+&emsp;&emsp;enabled|Integer|鏄惁鍚敤锛�0鍚�1鏄瘄-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+&emsp;&emsp;updateUserId|Long|淇敼鐢ㄦ埛|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎鐨偆灞炴€у瓧娈甸厤缃�
+
+**璇锋眰URL:** skin/field/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎鐨偆灞炴€у瓧娈甸厤缃�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/skin/field/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 绯荤粺鐨偆鍒嗙被
+
+### 鏌ヨ绯荤粺鐨偆鍒嗙被鍒楄〃
+
+**璇锋眰URL:** skin/category/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ绯荤粺鐨偆鍒嗙被
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+page|Integer|褰撳墠椤祙鍚-
+size|Integer|姣忛〉鏉℃暟|鍚-1鏌ヨ鎵€鏈�
+name|String|鍒嗙被鍚嶇О|鍚瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+
+**璇锋眰鏍蜂緥:**
+
+```
+  {
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;per_page|Integer|姣忛〉鏉℃暟|-
+&emsp;total|Integer|鎬绘潯鏁皘-
+&emsp;last_page|Integer|鎬婚〉鏁皘-
+&emsp;current_page|Integer|褰撳墠椤祙-
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;name|String|鍒嗙被鍚嶇О|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+        "per_page":10,
+        "total":0,
+        "data":[],
+        "last_page":0,
+        "current_page":1
+    },
+    "query":{
+        "modelCode":"phxt1",
+        "modelName":"鎺掑彿绯荤粺"
+    }
+}
+```
+
+### 鏌ョ湅绯荤粺鐨偆鍒嗙被
+
+**璇锋眰URL:** skin/category/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅绯荤粺鐨偆鍒嗙被锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|Long|涓婚敭,鍞竴|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost/skin/category/info?id=549
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;name|String|鍒嗙被鍚嶇О|-
+&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;updateTime|Date|淇敼鏃堕棿|-
+dict|object|瀛楀吀瀵硅薄|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":5835,
+            "name":"d99ib4",
+            "createTime":"2022-05-24",
+            "createUserId":4537,
+            "updateTime":"2022-05-24"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊绯荤粺鐨偆鍒嗙被
+
+**璇锋眰URL:** skin/category/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂扮郴缁熺毊鑲ゅ垎绫伙細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+name|String|鍒嗙被鍚嶇О|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+{
+    "name":"s8fx7a",
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+data|object|鏁版嵁瀵硅薄|-
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d|-
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋|瀵硅薄
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀縷-
+&emsp;&emsp;name|String|鍒嗙被鍚嶇О|-
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿|-
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛|-
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{
+            "__mortals_form_state__":"ADD",
+            "id":4,
+            "entity":{
+                "createTime":1642486776780,
+                "id":4,
+                "modelCode":"phxt1",
+                "modelName":"鎺掑彿绯荤粺4",
+                "updateTime":1642486776780
+            }
+    }
+}
+
+```
+
+### 鍒犻櫎绯荤粺鐨偆鍒嗙被
+
+**璇锋眰URL:** skin/category/delete
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎绯荤粺鐨偆鍒嗙被
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|澶囨敞|蹇呭~|鍏跺畠
+---|---|---|---|---
+id|String|瀛楃涓诧紝澶氫釜閫楀彿鍒嗛殧|鏄瘄-
+
+**璇锋眰鏍蜂緥:**
+
+```
+
+    http://localhost:8080/skin/category/delete?id=1'
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+
+{
+    "code":1,
+	"msg":"鎴愬姛"
+
+}
+
+```
+
+## 浜哄憳韬唤淇℃伅
+
+### 淇濆瓨鏇存柊鐢ㄦ埛淇℃伅
+
+**璇锋眰URL:** people/info/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂扮敤鎴蜂俊鎭細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:-------
+id|Long|鍚
+name|String|鏄瘄濮撳悕
+sex|String|鏄瘄鎬у埆
+nation|String|鏄瘄姘戞棌
+born|String|鏄瘄鍑虹敓鏃ユ湡
+address|String|鏄瘄鍦板潃
+idCardNo|String|鏄瘄韬唤璇佸彿
+grantDept|String|鏄瘄鍙戣瘉鏈哄叧
+userLifeBegin|String|鏄瘄鏈夋晥鏈熷紑濮�
+userLifeEnd|String|鏄瘄鏈夋晥鏈熺粨鏉�
+photoFileName|String|鏄瘄鐓х墖
+phone|String|鏄瘄鎵嬫満
+openid|String|鏄瘄寰俊寮€鏀捐璇乮d
+icon|String|鏄瘄寰俊澶村儚
+nickname|String|鏄瘄寰俊鏄电О
+username|String|鏄瘄澶╁簻閫氬姙鐢ㄦ埛鍚�
+createTime|Date|鍚鐢宠棰勭害鏃堕棿
+updateTime|Date|鍚
+
+**璇锋眰鏍蜂緥:**
+
+```
+{
+    "name":"g1mtla",
+    "sex":"yw1i5w",
+    "nation":"41zi5f",
+    "born":"a491q9",
+    "address":"1r4khf",
+    "idCardNo":"4fj9z8",
+    "grantDept":"p1k0fs",
+    "userLifeBegin":"mfsh33",
+    "userLifeEnd":"xet91i",
+    "photoFileName":"rzyl46",
+    "phone":"nousp9",
+    "openid":"pv5ivw",
+    "lastTime":"2022-08-08",
+    "upTime":"2022-08-08",
+    "icon":"1tc9bb",
+    "nickname":"bta47q",
+    "zImg":"o2l8lq",
+    "bImg":"o6ll60",
+    "siteid":1733,
+    "username":"3kw7ko",
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋
+&emsp;&emsp;id|Long|
+&emsp;&emsp;name|String|濮撳悕
+&emsp;&emsp;sex|String|鎬у埆
+&emsp;&emsp;nation|String|姘戞棌
+&emsp;&emsp;born|String|鍑虹敓鏃ユ湡
+&emsp;&emsp;address|String|鍦板潃
+&emsp;&emsp;idCardNo|String|韬唤璇佸彿
+&emsp;&emsp;grantDept|String|鍙戣瘉鏈哄叧
+&emsp;&emsp;userLifeBegin|String|鏈夋晥鏈熷紑濮�
+&emsp;&emsp;userLifeEnd|String|鏈夋晥鏈熺粨鏉�
+&emsp;&emsp;photoFileName|String|鐓х墖
+&emsp;&emsp;phone|String|鎵嬫満
+&emsp;&emsp;openid|String|
+&emsp;&emsp;lastTime|Date|鏈€杩戠櫥褰曟椂闂�
+&emsp;&emsp;upTime|Date|
+&emsp;&emsp;icon|String|寰俊澶村儚
+&emsp;&emsp;nickname|String|寰俊鏄电О
+&emsp;&emsp;zImg|String|韬唤璇佹闈㈢収鐗�
+&emsp;&emsp;bImg|String|韬唤璇佽儗闈㈢収鐗�
+&emsp;&emsp;siteid|Long|榛樿閫夋嫨鐨勭珯鐐筰d
+&emsp;&emsp;username|String|澶╁簻閫氬姙鐢ㄦ埛鍚�
+&emsp;&emsp;createTime|Date|鐢宠棰勭害鏃堕棿
+&emsp;&emsp;updateTime|Date|
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{}
+    }
+}
+
+```
+
+### 鏌ョ湅鐢ㄦ埛淇℃伅
+
+**璇锋眰URL:** people/info/findIdEntity
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅鐢ㄦ埛淇℃伅锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+idCardNo|String|鏄瘄韬唤璇佸彿
+phone|String|鏄瘄鎵嬫満
+openid|String|鏄瘄寰俊寮€鏀捐璇乮d
+
+**璇锋眰鏍蜂緥:**
+
+```
+{
+    "idCardNo":"4fj9z8",
+    "phone":"nousp9",
+    "openid":"pv5ivw"
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:-------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|
+&emsp;name|String|濮撳悕
+&emsp;sex|String|鎬у埆
+&emsp;nation|String|姘戞棌
+&emsp;born|String|鍑虹敓鏃ユ湡
+&emsp;address|String|鍦板潃
+&emsp;idCardNo|String|韬唤璇佸彿
+&emsp;grantDept|String|鍙戣瘉鏈哄叧
+&emsp;userLifeBegin|String|鏈夋晥鏈熷紑濮�
+&emsp;userLifeEnd|String|鏈夋晥鏈熺粨鏉�
+&emsp;photoFileName|String|鐓х墖
+&emsp;phone|String|鎵嬫満
+&emsp;openid|String|
+&emsp;lastTime|Date|鏈€杩戠櫥褰曟椂闂�
+&emsp;upTime|Date|
+&emsp;icon|String|寰俊澶村儚
+&emsp;nickname|String|寰俊鏄电О
+&emsp;zImg|String|韬唤璇佹闈㈢収鐗�
+&emsp;bImg|String|韬唤璇佽儗闈㈢収鐗�
+&emsp;siteid|Long|榛樿閫夋嫨鐨勭珯鐐筰d
+&emsp;username|String|澶╁簻閫氬姙鐢ㄦ埛鍚�
+&emsp;createTime|Date|鐢宠棰勭害鏃堕棿
+&emsp;updateTime|Date|
+dict|object|瀛楀吀瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":8372,
+            "name":"3nj72f",
+            "sex":"8pss9q",
+            "nation":"y79jur",
+            "born":"6y0ihf",
+            "address":"d9b5h9",
+            "idCardNo":"651c8z",
+            "grantDept":"80i44h",
+            "userLifeBegin":"vjgnio",
+            "userLifeEnd":"dr6abb",
+            "photoFileName":"1pm3dk",
+            "phone":"xbu2rm",
+            "openid":"s4x184",
+            "lastTime":"2022-08-08",
+            "upTime":"2022-08-08",
+            "icon":"ayzdhq",
+            "nickname":"f485cv",
+            "zImg":"baipag",
+            "bImg":"mfv9jr",
+            "siteid":7496,
+            "username":"vfycx8",
+            "createTime":"2022-08-08",
+            "updateTime":"2022-08-08"
+        }
+}
+```
+
+## 鑷姪缁堢搴旂敤
+
+### 鏌ヨ鑷姪缁堢搴旂敤鍒楄〃
+
+**璇锋眰URL:** app/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ鑷姪缁堢搴旂敤
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+page|Integer|鍚褰撳墠椤�
+size|Integer|鍚姣忛〉鏉℃暟锛屽€间负-1锛屾煡璇㈡墍鏈夎褰�
+siteId|Long|鍚绔欑偣Id
+appName|String|鍚搴旂敤鍚嶇О,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+type|Integer|鍚绫诲瀷(1.缁堢搴旂敤,2.绉诲姩绔簲鐢�)
+
+**璇锋眰鏍蜂緥:**
+
+```
+  {
+        "siteId":3,
+        "appName":"%娴嬭瘯%",
+        "type":1,
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О| 鍙傛暟绫诲瀷    |鎻忚堪
+:---|:--------|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;per_page|Integer|姣忛〉鏉℃暟
+&emsp;total|Integer|鎬绘潯鏁�
+&emsp;last_page|Integer|鎬婚〉鏁�
+&emsp;current_page|Integer|褰撳墠椤�
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|涓婚敭ID锛屼富閿紝鑷闀�
+&emsp;&emsp;siteId|Long|绔欑偣Id
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О
+&emsp;&emsp;appCode|String|搴旂敤缂栫爜
+&emsp;&emsp;appName|String|搴旂敤鍚嶇О
+&emsp;&emsp;appIconPath|String|搴旂敤鍥炬爣
+&emsp;&emsp;appThemeName|String|搴旂敤涓婚鍚嶇О
+&emsp;&emsp;type|Integer|绫诲瀷(1.缁堢搴旂敤,2.绉诲姩绔簲鐢�)
+&emsp;&emsp;url|String|閾炬帴鍦板潃
+&emsp;&emsp;downDevCount|Integer|涓嬪彂璁惧娆℃暟
+&emsp;&emsp;shelves|Integer|鏄惁涓婃灦(0.涓嬫灦锛�1.涓婃灦)
+&emsp;&emsp;appType|Integer|绫诲瀷(1.搴旂敤绋嬪簭,2.url)
+&emsp;&emsp;fileName|String|鏂囦欢鍚嶇О
+&emsp;&emsp;filePath|String|鏂囦欢鐩稿璺緞鍦板潃
+&emsp;&emsp;distributeFilePath|String|鏂囦欢閮ㄧ讲璺緞鍦板潃
+&emsp;&emsp;version|Integer|褰撳墠鐗堟湰
+&emsp;&emsp;summary|String|绠€浠�
+&emsp;&emsp;notes|String|鏇存柊璇存槑
+&emsp;&emsp;distribute|Integer|鏄惁閮ㄧ讲(0.鍚︼紝1.鏄�)
+&emsp;&emsp;dataUpdate|Integer|鏄惁鏁版嵁鏇存柊(0.鍚︼紝1.鏄�)
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;updateUserId|Long|鏇存柊鐢ㄦ埛
+&emsp;&emsp;updateTime|Date|鏇存柊鏃堕棿
+&emsp;&emsp;serviceApi|String|鏈嶅姟鎺ュ彛鍦板潃
+&emsp;&emsp;custUrl|String|鑷富搴旂敤鍓嶇璁块棶鍦板潃
+&emsp;&emsp;appIconUrl|String|鑷富搴旂敤鍓嶇鍥炬爣鍦板潃
+dict|object|瀛楀吀瀵硅薄
+&emsp;type|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;shelves|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;appType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;distribute|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;dataUpdate|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+    }
+}
+```
+
+### 鏌ョ湅鑷姪缁堢搴旂敤
+
+**璇锋眰URL:** app/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅鑷姪缁堢搴旂敤锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|Long|鏄瘄ID
+
+**璇锋眰鏍蜂緥:**
+
+```
+    http://localhost/app/info?id=549
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:-------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|涓婚敭ID锛屼富閿紝鑷闀�
+&emsp;siteId|Long|绔欑偣Id
+&emsp;siteName|String|绔欑偣鍚嶇О
+&emsp;appCode|String|搴旂敤缂栫爜
+&emsp;appName|String|搴旂敤鍚嶇О
+&emsp;appIconPath|String|搴旂敤鍥炬爣
+&emsp;appThemeName|String|搴旂敤涓婚鍚嶇О
+&emsp;type|Integer|绫诲瀷(1.缁堢搴旂敤,2.绉诲姩绔簲鐢�)
+&emsp;url|String|閾炬帴鍦板潃
+&emsp;downDevCount|Integer|涓嬪彂璁惧娆℃暟
+&emsp;shelves|Integer|鏄惁涓婃灦(0.涓嬫灦锛�1.涓婃灦)
+&emsp;appType|Integer|绫诲瀷(1.搴旂敤绋嬪簭,2.url)
+&emsp;fileName|String|鏂囦欢鍚嶇О
+&emsp;filePath|String|鏂囦欢鐩稿璺緞鍦板潃
+&emsp;distributeFilePath|String|鏂囦欢閮ㄧ讲璺緞鍦板潃
+&emsp;version|Integer|褰撳墠鐗堟湰
+&emsp;summary|String|绠€浠�
+&emsp;notes|String|鏇存柊璇存槑
+&emsp;distribute|Integer|鏄惁閮ㄧ讲(0.鍚︼紝1.鏄�)
+&emsp;dataUpdate|Integer|鏄惁鏁版嵁鏇存柊(0.鍚︼紝1.鏄�)
+&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;updateUserId|Long|鏇存柊鐢ㄦ埛
+&emsp;updateTime|Date|鏇存柊鏃堕棿
+&emsp;serviceApi|String|鏈嶅姟鎺ュ彛鍦板潃
+&emsp;custUrl|String|鑷富搴旂敤鍓嶇璁块棶鍦板潃
+&emsp;appIconUrl|String|鑷富搴旂敤鍓嶇鍥炬爣鍦板潃
+dict|object|瀛楀吀瀵硅薄
+&emsp;type|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;shelves|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;appType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;distribute|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;dataUpdate|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":5661,
+            "siteId":3038,
+            "siteName":"59cqwl",
+            "appCode":"ew650t",
+            "appName":"01v3ys",
+            "appIconPath":"i9tva9",
+            "appThemeName":"t9c5x7",
+            "type":8218,
+            "downDevCount":8121,
+            "shelves":767,
+            "filePath":"bahk04",
+            "distributeFilePath":"zwnec2",
+            "version":"h2hykn",
+            "summary":"fkx21x",
+            "distribute":2324,
+            "dateUpdate":4081,
+            "createTime":"2022-11-28",
+            "updateUserId":1517,
+            "updateTime":"2022-11-28"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊鑷姪缁堢搴旂敤
+
+**璇锋眰URL:** app/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂拌嚜鍔╃粓绔簲鐢細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:-------
+siteId|Long|鍚绔欑偣Id
+siteName|String|鍚绔欑偣鍚嶇О
+appCode|String|鍚搴旂敤缂栫爜
+appName|String|鍚搴旂敤鍚嶇О
+appIconPath|String|鍚搴旂敤鍥炬爣
+appThemeName|String|鍚搴旂敤涓婚鍚嶇О
+type|Integer|鍚绫诲瀷(1.缁堢搴旂敤,2.绉诲姩绔簲鐢�)
+url|String|鍚閾炬帴鍦板潃
+downDevCount|Integer|鍚涓嬪彂璁惧娆℃暟
+shelves|Integer|鍚鏄惁涓婃灦(0.涓嬫灦锛�1.涓婃灦)
+appType|Integer|鍚绫诲瀷(1.搴旂敤绋嬪簭,2.url)
+fileName|String|鍚鏂囦欢鍚嶇О
+filePath|String|鍚鏂囦欢鐩稿璺緞鍦板潃
+distributeFilePath|String|鍚鏂囦欢閮ㄧ讲璺緞鍦板潃
+version|Integer|鍚褰撳墠鐗堟湰
+summary|String|鍚绠€浠�
+notes|String|鍚鏇存柊璇存槑
+distribute|Integer|鍚鏄惁閮ㄧ讲(0.鍚︼紝1.鏄�)
+dataUpdate|Integer|鍚鏄惁鏁版嵁鏇存柊(0.鍚︼紝1.鏄�)
+serviceApi|String|鍚鏈嶅姟鎺ュ彛鍦板潃
+
+**璇锋眰鏍蜂緥:**
+
+```
+{
+    "siteId":3,
+    "siteName":"d2gw07",
+    "appCode":"lkbgoi",
+    "appName":"pcgabb",
+    "appIconPath":"3dzxzj",
+    "appThemeName":"jy1ied",
+    "type":1,
+    "appType":1,
+    "downDevCount":1824,
+    "shelves":226,
+    "filePath":"f20yrl",
+    "summary":"ahn2gk",
+    "distribute":0,
+    "dataUpdate":5868,
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋
+&emsp;&emsp;id|Long|涓婚敭ID锛屼富閿紝鑷闀�
+&emsp;&emsp;siteId|Long|绔欑偣Id
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О
+&emsp;&emsp;appCode|String|搴旂敤缂栫爜
+&emsp;&emsp;appName|String|搴旂敤鍚嶇О
+&emsp;&emsp;appIconPath|String|搴旂敤鍥炬爣
+&emsp;&emsp;appThemeName|String|搴旂敤涓婚鍚嶇О
+&emsp;&emsp;type|Integer|绫诲瀷(1.缁堢搴旂敤,2.绉诲姩绔簲鐢�)
+&emsp;&emsp;downDevCount|Integer|涓嬪彂璁惧娆℃暟
+&emsp;&emsp;shelves|Integer|鏄惁涓婃灦(0.涓婃灦锛�1.涓嬫灦)
+&emsp;&emsp;filePath|String|鏂囦欢鐩稿璺緞鍦板潃
+&emsp;&emsp;distributeFilePath|String|鏂囦欢閮ㄧ讲璺緞鍦板潃
+&emsp;&emsp;version|String|褰撳墠鐗堟湰
+&emsp;&emsp;summary|String|绠€浠�
+&emsp;&emsp;distribute|Integer|鏄惁閮ㄧ讲(0.鍚︼紝1.鏄�)
+&emsp;&emsp;dateUpdate|Integer|鏄惁鏁版嵁鏇存柊(0.鍚︼紝1.鏄�)
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;updateUserId|Long|鏇存柊鐢ㄦ埛
+&emsp;&emsp;updateTime|Date|鏇存柊鏃堕棿
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{}
+    }
+}
+
+```
+
+### 鍒犻櫎鑷姪缁堢搴旂敤
+
+**璇锋眰URL:** app/delete
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎鑷姪缁堢搴旂敤
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|String|鏄瘄鏁扮粍
+
+**璇锋眰鏍蜂緥:**
+
+```
+    http://localhost:8080/app/delete?id=1&id=2'
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+	"msg":"鎴愬姛"
+}
+
+```
+
+
+### 鑷姪缁堢搴旂敤閮ㄧ讲
+
+**璇锋眰URL:** app/appDistribute
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 搴旂敤閮ㄧ讲
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О| 绫诲瀷    | 蹇呭~  |鎻忚堪
+:---|:------|:----|:-------
+id|Long|鍚搴旂敤Id
+
+**璇锋眰鏍蜂緥:**
+
+```
+{
+
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "msg":"搴旂敤閮ㄧ讲鎴愬姛",
+    "code":1,
+    "data":{}
+    }
+}
+
+```
+
+### 鑷姪缁堢鍩虹搴旂敤閮ㄧ讲
+
+**璇锋眰URL:** app/appCommonDistribute
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍩虹搴旂敤閮ㄧ讲
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О| 绫诲瀷    | 蹇呭~  |鎻忚堪
+:---|:------|:----|:-------
+filePath|String|鏄瘄鏂囦欢鐩稿璺緞鍦板潃
+
+**璇锋眰鏍蜂緥:**
+
+```
+{
+
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "msg":"搴旂敤閮ㄧ讲鎴愬姛",
+    "code":1,
+    "data":{}
+    }
+}
+
+```
+
+
+### 鑷姪缁堢搴旂敤鍏嬮殕
+
+**璇锋眰URL:** app/cloneAppsBySites
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 搴旂敤鍏嬮殕
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О| 绫诲瀷    | 蹇呭~  |鎻忚堪
+:---|:------|:----|:-------
+idList| array | 鏄�   |搴旂敤app Id鍒楄〃
+siteIdList| array | 鏄�   |绔欑偣Id鍒楄〃
+
+**璇锋眰鏍蜂緥:**
+
+```
+{
+    "idList":[1,2],
+    "siteIdList":[1,2,3],
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "msg":"搴旂敤鍏嬮殕鎴愬姛",
+    "code":1,
+    "data":{}
+    }
+}
+
+```
+
+## 鑷姪缁堢搴旂敤鏁版嵁闆�
+
+### 鏌ヨ鑷姪缁堢搴旂敤鏁版嵁闆嗗垪琛�
+
+**璇锋眰URL:** app/dataset/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ鑷姪缁堢搴旂敤鏁版嵁闆�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷| 蹇呭~  |鎻忚堪
+:---|:---|:----|:------
+page|Integer| 鍚�   |褰撳墠椤�
+size|Integer| 鍚�   |姣忛〉鏉℃暟锛屽€间负-1锛屾煡璇㈡墍鏈夎褰�
+appId|Long| 鏄�   |appId
+
+**璇锋眰鏍蜂緥:**
+
+```
+  {
+        "appId":1,
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О|鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;per_page|Integer|姣忛〉鏉℃暟
+&emsp;total|Integer|鎬绘潯鏁�
+&emsp;last_page|Integer|鎬婚〉鏁�
+&emsp;current_page|Integer|褰撳墠椤�
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|涓婚敭ID锛屼富閿紝鑷闀�
+&emsp;&emsp;appId|Long|appId
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;updateUserId|Long|鏇存柊鐢ㄦ埛
+&emsp;&emsp;updateTime|Date|鏇存柊鏃堕棿
+&emsp;&emsp;appInfoFieldList|array|灞炴€у垪琛▅鏁扮粍
+&emsp;&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;&emsp;&emsp;datasetId|Long|搴旂敤鏁版嵁闆唅d
+&emsp;&emsp;&emsp;fieldCode|String|瀛楁缂栫爜
+&emsp;&emsp;&emsp;fieldName|String|瀛楁鍚嶇О
+&emsp;&emsp;&emsp;fieldType|String|瀛楁绫诲瀷锛坕nput.鍗曡杈撳叆妗�,textarea.澶氳杈撳叆妗�,SELECT.涓嬫媺閫夐」妗�,date.鏃ユ湡閫夋嫨妗嗭級
+&emsp;&emsp;&emsp;dataType|String|鏁版嵁绫诲瀷锛坣umber.鏁板瓧,string.瀛楃涓诧級
+&emsp;&emsp;&emsp;fieldValue|String|瀛楁鍊�
+&emsp;&emsp;&emsp;fieldLen|Integer|鏁版嵁闀垮害锛岄粯璁�128
+&emsp;&emsp;&emsp;fieldNull|Integer|鏄惁鍏佽涓虹┖锛�(0.鍚�,1.鏄�)
+&emsp;&emsp;&emsp;isList|Integer|瀛楁鏄惁鍒楄〃鏄剧ず(0.鍚�,1.鏄�)
+&emsp;&emsp;&emsp;fieldOrderNo|String|鎺掑簭鍙�
+&emsp;&emsp;&emsp;remark|String|澶囨敞
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+    }
+}
+```
+
+### 鏌ョ湅鑷姪缁堢搴旂敤鏁版嵁闆�
+
+**璇锋眰URL:** app/dataset/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅鑷姪缁堢搴旂敤鏁版嵁闆嗭紝杩斿洖瀹炰緥璇︾粏淇℃伅
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|Long|鏄瘄ID
+
+**璇锋眰鏍蜂緥:**
+
+```
+    http://localhost/app/dataset/info?id=549
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:-------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|涓婚敭ID锛屼富閿紝鑷闀�
+&emsp;appId|Long|appId
+&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;updateUserId|Long|鏇存柊鐢ㄦ埛
+&emsp;updateTime|Date|鏇存柊鏃堕棿
+dict|object|瀛楀吀瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":5613,
+            "appId":3,
+            "createTime":"2022-11-28",
+            "updateUserId":6256,
+            "updateTime":"2022-11-28"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊鑷姪缁堢搴旂敤鏁版嵁闆�
+
+**璇锋眰URL:** app/dataset/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂拌嚜鍔╃粓绔簲鐢ㄦ暟鎹泦锛歩d涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О| 绫诲瀷     |蹇呭~|鎻忚堪
+:---|:-------|:---|:-------
+appId| Long   |鍚appId
+appInfoFieldList| arrays |鍚灞炴€у垪琛紝鍙€夊睘鎬у璞¤瑙佸睘鎬у瓧娈�
+
+**璇锋眰鏍蜂緥:**
+
+```
+{
+    "appId":1,
+    "appInfoFieldList":[
+  {
+    "fieldCode": "title1",
+    "fieldName": "鏍囬1",
+    "fieldType": "input",
+    "dataType": "number",
+    "fieldValue": "zo0",
+    "fieldLen": 255,
+    "fieldNull": 1,
+    "isList": 1,
+    "fieldOrderNo": "1",
+    "remark": "1111111111"
+  },
+  {
+    "fieldCode": "title2",
+    "fieldName": "鏍囬2",
+    "fieldType": "input",
+    "dataType": "number",
+    "fieldValue": "zo0",
+    "fieldLen": 255,
+    "fieldNull": 1,
+    "isList": 1,
+    "fieldOrderNo": "1",
+    "remark": "22222222222222"
+  }
+]
+    
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋
+&emsp;&emsp;id|Long|涓婚敭ID锛屼富閿紝鑷闀�
+&emsp;&emsp;appId|Long|appId
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;updateUserId|Long|鏇存柊鐢ㄦ埛
+&emsp;&emsp;updateTime|Date|鏇存柊鏃堕棿
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{}
+    }
+}
+
+```
+
+### 鍒犻櫎鑷姪缁堢搴旂敤鏁版嵁闆�
+
+**璇锋眰URL:** app/dataset/delete
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎鑷姪缁堢搴旂敤鏁版嵁闆�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|String|鏄瘄鏁扮粍
+
+**璇锋眰鏍蜂緥:**
+
+```
+    http://localhost:8080/app/dataset/delete?id=1&id=2'
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+	"msg":"鎴愬姛"
+}
+
+```
+
+## 鑷姪缁堢搴旂敤淇℃伅瀛楁
+
+### 鏌ヨ鑷姪缁堢搴旂敤淇℃伅瀛楁鍒楄〃
+
+**璇锋眰URL:** app/info/field/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ鑷姪缁堢搴旂敤淇℃伅瀛楁
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+page|Integer|鍚褰撳墠椤�
+size|Integer|鍚姣忛〉鏉℃暟锛屽€间负-1锛屾煡璇㈡墍鏈夎褰�
+datasetId|Long|鍚搴旂敤鏁版嵁闆唅d
+fieldCode|String|鍚瀛楁缂栫爜,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+fieldName|String|鍚瀛楁鍚嶇О,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+fieldType|String|鍚瀛楁绫诲瀷锛坕nput.鍗曡杈撳叆妗�,textarea.澶氳杈撳叆妗�,SELECT.涓嬫媺閫夐」妗�,date.鏃ユ湡閫夋嫨妗嗭級,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+dataType|String|鍚鏁版嵁绫诲瀷锛坣umber.鏁板瓧,string.瀛楃涓诧級,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+fieldValue|String|鍚瀛楁鍊�,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+fieldLen|Integer|鍚鏁版嵁闀垮害锛岄粯璁�128
+fieldNull|Integer|鍚鏄惁鍏佽涓虹┖锛�(0.鍚�,1.鏄�)
+isList|Integer|鍚瀛楁鏄惁鍒楄〃鏄剧ず(0.鍚�,1.鏄�)
+fieldOrderNo|String|鍚鎺掑簭鍙�,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+
+**璇锋眰鏍蜂緥:**
+
+```
+  {
+        "datasetId":2544,
+        "fieldCode":"93ij7m",
+        "fieldName":"0q3r6y",
+        "fieldType":"3k5jlq",
+        "dataType":"97wvna",
+        "fieldValue":"3sjmdr",
+        "fieldLen":5246,
+        "fieldNull":1778,
+        "isList":3582,
+        "fieldOrderNo":"0moy84",
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О|鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;per_page|Integer|姣忛〉鏉℃暟
+&emsp;total|Integer|鎬绘潯鏁�
+&emsp;last_page|Integer|鎬婚〉鏁�
+&emsp;current_page|Integer|褰撳墠椤�
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;&emsp;datasetId|Long|搴旂敤鏁版嵁闆唅d
+&emsp;&emsp;fieldCode|String|瀛楁缂栫爜
+&emsp;&emsp;fieldName|String|瀛楁鍚嶇О
+&emsp;&emsp;fieldType|String|瀛楁绫诲瀷锛坕nput.鍗曡杈撳叆妗�,textarea.澶氳杈撳叆妗�,SELECT.涓嬫媺閫夐」妗�,date.鏃ユ湡閫夋嫨妗嗭級
+&emsp;&emsp;dataType|String|鏁版嵁绫诲瀷锛坣umber.鏁板瓧,string.瀛楃涓诧級
+&emsp;&emsp;fieldValue|String|瀛楁鍊�
+&emsp;&emsp;fieldLen|Integer|鏁版嵁闀垮害锛岄粯璁�128
+&emsp;&emsp;fieldNull|Integer|鏄惁鍏佽涓虹┖锛�(0.鍚�,1.鏄�)
+&emsp;&emsp;isList|Integer|瀛楁鏄惁鍒楄〃鏄剧ず(0.鍚�,1.鏄�)
+&emsp;&emsp;fieldOrderNo|String|鎺掑簭鍙�
+&emsp;&emsp;remark|String|澶囨敞
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿
+&emsp;&emsp;updateUserId|Long|淇敼鐢ㄦ埛
+&emsp;&emsp;fieldTypeValue|String|瀛楁绫诲瀷鍊硷紝褰撳瓧娈电被鍨嬩负澶氶€夛紝鍗曢€夋椂鍊欙紝棰勮澶嶉€夊€�
+&emsp;&emsp;defaultValue|String|瀛楁榛樿鍊�
+dict|object|瀛楀吀瀵硅薄
+&emsp;fieldType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;dataType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;fieldNull|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;isList|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+    }
+}
+```
+
+### 鏌ョ湅鑷姪缁堢搴旂敤淇℃伅瀛楁
+
+**璇锋眰URL:** app/info/field/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅鑷姪缁堢搴旂敤淇℃伅瀛楁锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|Long|鏄瘄ID
+
+**璇锋眰鏍蜂緥:**
+
+```
+    http://localhost/app/info/field/info?id=549
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:-------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;datasetId|Long|搴旂敤鏁版嵁闆唅d
+&emsp;fieldCode|String|瀛楁缂栫爜
+&emsp;fieldName|String|瀛楁鍚嶇О
+&emsp;fieldType|String|瀛楁绫诲瀷锛坕nput.鍗曡杈撳叆妗�,textarea.澶氳杈撳叆妗�,SELECT.涓嬫媺閫夐」妗�,date.鏃ユ湡閫夋嫨妗嗭級
+&emsp;dataType|String|鏁版嵁绫诲瀷锛坣umber.鏁板瓧,string.瀛楃涓诧級
+&emsp;fieldValue|String|瀛楁鍊�
+&emsp;fieldLen|Integer|鏁版嵁闀垮害锛岄粯璁�128
+&emsp;fieldNull|Integer|鏄惁鍏佽涓虹┖锛�(0.鍚�,1.鏄�)
+&emsp;isList|Integer|瀛楁鏄惁鍒楄〃鏄剧ず(0.鍚�,1.鏄�)
+&emsp;fieldOrderNo|String|鎺掑簭鍙�
+&emsp;remark|String|澶囨敞
+&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;updateTime|Date|淇敼鏃堕棿
+&emsp;updateUserId|Long|淇敼鐢ㄦ埛
+&emsp;fieldTypeValue|String|瀛楁绫诲瀷鍊硷紝褰撳瓧娈电被鍨嬩负澶氶€夛紝鍗曢€夋椂鍊欙紝棰勮澶嶉€夊€�
+&emsp;defaultValue|String|瀛楁榛樿鍊�
+dict|object|瀛楀吀瀵硅薄
+&emsp;fieldType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;dataType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;fieldNull|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;isList|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":5403,
+            "datasetId":8462,
+            "fieldCode":"uxnplp",
+            "fieldName":"uvgoit",
+            "fieldType":"broj9x",
+            "dataType":"zhuf5b",
+            "fieldValue":"bwl7rh",
+            "fieldLen":6326,
+            "fieldNull":5713,
+            "isList":4872,
+            "fieldOrderNo":"uhok87",
+            "remark":"xe10q4",
+            "createTime":"2022-11-28",
+            "createUserId":7834,
+            "updateTime":"2022-11-28",
+            "updateUserId":7212
+        }
+}
+```
+
+### 淇濆瓨鏇存柊鑷姪缁堢搴旂敤淇℃伅瀛楁
+
+**璇锋眰URL:** app/info/field/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂拌嚜鍔╃粓绔簲鐢ㄤ俊鎭瓧娈碉細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:-------
+datasetId|Long|鍚搴旂敤鏁版嵁闆唅d
+fieldCode|String|鍚瀛楁缂栫爜
+fieldName|String|鍚瀛楁鍚嶇О
+fieldType|String|鍚瀛楁绫诲瀷锛坕nput.鍗曡杈撳叆妗�,textarea.澶氳杈撳叆妗�,SELECT.涓嬫媺閫夐」妗�,date.鏃ユ湡閫夋嫨妗嗭級
+dataType|String|鍚鏁版嵁绫诲瀷锛坣umber.鏁板瓧,string.瀛楃涓诧級
+fieldValue|String|鍚瀛楁鍊�
+fieldLen|Integer|鍚鏁版嵁闀垮害锛岄粯璁�128
+fieldNull|Integer|鍚鏄惁鍏佽涓虹┖锛�(0.鍚�,1.鏄�)
+isList|Integer|鍚瀛楁鏄惁鍒楄〃鏄剧ず(0.鍚�,1.鏄�)
+fieldOrderNo|String|鍚鎺掑簭鍙�
+remark|String|鍚澶囨敞
+fieldTypeValue|String|鍚瀛楁绫诲瀷鍊硷紝褰撳瓧娈电被鍨嬩负澶氶€夛紝鍗曢€夋椂鍊欙紝棰勮澶嶉€夊€�
+defaultValue|String|鍚瀛楁榛樿鍊�
+
+**璇锋眰鏍蜂緥:**
+
+```
+{
+    "datasetId":3090,
+    "fieldCode":"gc7wls",
+    "fieldName":"dyrnxl",
+    "fieldType":"edlnat",
+    "dataType":"sw0k9c",
+    "fieldValue":"6s9bm8",
+    "fieldLen":475,
+    "fieldNull":165,
+    "isList":9826,
+    "fieldOrderNo":"vq0vc7",
+    "remark":"8oqw9v",
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;&emsp;datasetId|Long|搴旂敤鏁版嵁闆唅d
+&emsp;&emsp;fieldCode|String|瀛楁缂栫爜
+&emsp;&emsp;fieldName|String|瀛楁鍚嶇О
+&emsp;&emsp;fieldType|String|瀛楁绫诲瀷锛坕nput.鍗曡杈撳叆妗�,textarea.澶氳杈撳叆妗�,SELECT.涓嬫媺閫夐」妗�,date.鏃ユ湡閫夋嫨妗嗭級
+&emsp;&emsp;dataType|String|鏁版嵁绫诲瀷锛坣umber.鏁板瓧,string.瀛楃涓诧級
+&emsp;&emsp;fieldValue|String|瀛楁鍊�
+&emsp;&emsp;fieldLen|Integer|鏁版嵁闀垮害锛岄粯璁�128
+&emsp;&emsp;fieldNull|Integer|鏄惁鍏佽涓虹┖锛�(0.鍚�,1.鏄�)
+&emsp;&emsp;isList|Integer|瀛楁鏄惁鍒楄〃鏄剧ず(0.鍚�,1.鏄�)
+&emsp;&emsp;fieldOrderNo|String|鎺掑簭鍙�
+&emsp;&emsp;remark|String|澶囨敞
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿
+&emsp;&emsp;updateUserId|Long|淇敼鐢ㄦ埛
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{}
+    }
+}
+
+```
+
+### 鍒犻櫎鑷姪缁堢搴旂敤淇℃伅瀛楁
+
+**璇锋眰URL:** app/info/field/delete
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎鑷姪缁堢搴旂敤淇℃伅瀛楁
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|String|鏄瘄鏁扮粍
+
+**璇锋眰鏍蜂緥:**
+
+```
+    http://localhost:8080/app/info/field/delete?id=1&id=2'
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+	"msg":"鎴愬姛"
+}
+
+```
+
+## 鑷姪缁堢搴旂敤妯℃澘淇℃伅瀛楁
+
+### 鏌ヨ鑷姪缁堢搴旂敤妯℃澘淇℃伅瀛楁鍒楄〃
+
+**璇锋眰URL:** app/info/templete/field/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ鑷姪缁堢搴旂敤妯℃澘淇℃伅瀛楁
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+page|Integer|鍚褰撳墠椤�
+size|Integer|鍚姣忛〉鏉℃暟锛屽€间负-1锛屾煡璇㈡墍鏈夎褰�
+appId|Long|鍚搴旂敤id
+
+**璇锋眰鏍蜂緥:**
+
+```
+  {
+        "appId":1,
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О|鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;per_page|Integer|姣忛〉鏉℃暟
+&emsp;total|Integer|鎬绘潯鏁�
+&emsp;last_page|Integer|鎬婚〉鏁�
+&emsp;current_page|Integer|褰撳墠椤�
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;&emsp;appId|Long|搴旂敤id
+&emsp;&emsp;fieldCode|String|瀛楁缂栫爜
+&emsp;&emsp;fieldName|String|瀛楁鍚嶇О
+&emsp;&emsp;fieldType|String|瀛楁绫诲瀷锛坕nput.鍗曡杈撳叆妗�,textarea.澶氳杈撳叆妗�,SELECT.涓嬫媺閫夐」妗�,date.鏃ユ湡閫夋嫨妗嗭級
+&emsp;&emsp;dataType|String|鏁版嵁绫诲瀷锛坣umber.鏁板瓧,string.瀛楃涓诧級
+&emsp;&emsp;fieldValue|String|瀛楁鍊�
+&emsp;&emsp;fieldLen|Integer|鏁版嵁闀垮害锛岄粯璁�128
+&emsp;&emsp;fieldNull|Integer|鏄惁鍏佽涓虹┖锛�(0.鍚�,1.鏄�)
+&emsp;&emsp;isList|Integer|瀛楁鏄惁鍒楄〃鏄剧ず(0.鍚�,1.鏄�)
+&emsp;&emsp;fieldOrderNo|String|鎺掑簭鍙�
+&emsp;&emsp;remark|String|澶囨敞
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿
+&emsp;&emsp;updateUserId|Long|淇敼鐢ㄦ埛
+&emsp;&emsp;fieldTypeValue|String|瀛楁绫诲瀷鍊硷紝褰撳瓧娈电被鍨嬩负澶氶€夛紝鍗曢€夋椂鍊欙紝棰勮澶嶉€夊€�
+&emsp;&emsp;defaultValue|String|瀛楁榛樿鍊�
+dict|object|瀛楀吀瀵硅薄
+&emsp;fieldType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;dataType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;fieldNull|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;isList|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+    }
+}
+```
+
+### 鏌ョ湅鑷姪缁堢搴旂敤妯℃澘淇℃伅瀛楁
+
+**璇锋眰URL:** app/info/templete/field/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅鑷姪缁堢搴旂敤妯℃澘淇℃伅瀛楁锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|Long|鏄瘄ID
+
+**璇锋眰鏍蜂緥:**
+
+```
+    http://localhost/app/info/templete/field/info?id=549
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:-------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;appId|Long|搴旂敤id
+&emsp;fieldCode|String|瀛楁缂栫爜
+&emsp;fieldName|String|瀛楁鍚嶇О
+&emsp;fieldType|String|瀛楁绫诲瀷锛坕nput.鍗曡杈撳叆妗�,textarea.澶氳杈撳叆妗�,SELECT.涓嬫媺閫夐」妗�,date.鏃ユ湡閫夋嫨妗嗭級
+&emsp;dataType|String|鏁版嵁绫诲瀷锛坣umber.鏁板瓧,string.瀛楃涓诧級
+&emsp;fieldValue|String|瀛楁鍊�
+&emsp;fieldLen|Integer|鏁版嵁闀垮害锛岄粯璁�128
+&emsp;fieldNull|Integer|鏄惁鍏佽涓虹┖锛�(0.鍚�,1.鏄�)
+&emsp;isList|Integer|瀛楁鏄惁鍒楄〃鏄剧ず(0.鍚�,1.鏄�)
+&emsp;fieldOrderNo|String|鎺掑簭鍙�
+&emsp;remark|String|澶囨敞
+&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;updateTime|Date|淇敼鏃堕棿
+&emsp;updateUserId|Long|淇敼鐢ㄦ埛
+&emsp;fieldTypeValue|String|瀛楁绫诲瀷鍊硷紝褰撳瓧娈电被鍨嬩负澶氶€夛紝鍗曢€夋椂鍊欙紝棰勮澶嶉€夊€�
+&emsp;defaultValue|String|瀛楁榛樿鍊�
+dict|object|瀛楀吀瀵硅薄
+&emsp;fieldType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;dataType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;fieldNull|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;isList|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":5674,
+            "appId":1239,
+            "fieldCode":"6x514h",
+            "fieldName":"e29k47",
+            "fieldType":"m9uxlg",
+            "dataType":"f9xbyg",
+            "fieldValue":"zgsuff",
+            "fieldLen":5273,
+            "fieldNull":3935,
+            "isList":337,
+            "fieldOrderNo":"f39igd",
+            "remark":"domueh",
+            "createTime":"2022-11-28",
+            "createUserId":1090,
+            "updateTime":"2022-11-28",
+            "updateUserId":6575
+        }
+}
+```
+
+### 淇濆瓨鏇存柊鑷姪缁堢搴旂敤妯℃澘淇℃伅瀛楁
+
+**璇锋眰URL:** app/info/templete/field/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂拌嚜鍔╃粓绔簲鐢ㄦā鏉夸俊鎭瓧娈碉細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:-------
+appId|Long|鍚搴旂敤id
+fieldCode|String|鍚瀛楁缂栫爜
+fieldName|String|鍚瀛楁鍚嶇О
+fieldType|String|鍚瀛楁绫诲瀷锛坕nput.鍗曡杈撳叆妗�,textarea.澶氳杈撳叆妗�,SELECT.涓嬫媺閫夐」妗�,date.鏃ユ湡閫夋嫨妗嗭級
+dataType|String|鍚鏁版嵁绫诲瀷锛坣umber.鏁板瓧,string.瀛楃涓诧級
+fieldValue|String|鍚瀛楁鍊�
+fieldLen|Integer|鍚鏁版嵁闀垮害锛岄粯璁�128
+fieldNull|Integer|鍚鏄惁鍏佽涓虹┖锛�(0.鍚�,1.鏄�)
+isList|Integer|鍚瀛楁鏄惁鍒楄〃鏄剧ず(0.鍚�,1.鏄�)
+fieldOrderNo|String|鍚鎺掑簭鍙�
+remark|String|鍚澶囨敞
+fieldTypeValue|String|鍚瀛楁绫诲瀷鍊硷紝褰撳瓧娈电被鍨嬩负澶氶€夛紝鍗曢€夋椂鍊欙紝棰勮澶嶉€夊€�
+defaultValue|String|鍚瀛楁榛樿鍊�
+
+**璇锋眰鏍蜂緥:**
+
+```
+{
+        "appId":1,
+        "fieldCode":"title2",
+        "fieldName":"鏍囬2",
+        "fieldType":"input",
+        "dataType":"number",
+        "fieldValue":"zo0",
+        "fieldLen":255,
+        "fieldNull":1,
+        "isList":1,
+        "fieldOrderNo":"1",
+        "remark":"xxxxxxxxxxxxxxxx"
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;&emsp;appId|Long|搴旂敤id
+&emsp;&emsp;fieldCode|String|瀛楁缂栫爜
+&emsp;&emsp;fieldName|String|瀛楁鍚嶇О
+&emsp;&emsp;fieldType|String|瀛楁绫诲瀷锛坕nput.鍗曡杈撳叆妗�,textarea.澶氳杈撳叆妗�,SELECT.涓嬫媺閫夐」妗�,date.鏃ユ湡閫夋嫨妗嗭級
+&emsp;&emsp;dataType|String|鏁版嵁绫诲瀷锛坣umber.鏁板瓧,string.瀛楃涓诧級
+&emsp;&emsp;fieldValue|String|瀛楁鍊�
+&emsp;&emsp;fieldLen|Integer|鏁版嵁闀垮害锛岄粯璁�128
+&emsp;&emsp;fieldNull|Integer|鏄惁鍏佽涓虹┖锛�(0.鍚�,1.鏄�)
+&emsp;&emsp;isList|Integer|瀛楁鏄惁鍒楄〃鏄剧ず(0.鍚�,1.鏄�)
+&emsp;&emsp;fieldOrderNo|String|鎺掑簭鍙�
+&emsp;&emsp;remark|String|澶囨敞
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿
+&emsp;&emsp;updateUserId|Long|淇敼鐢ㄦ埛
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{}
+    }
+}
+
+```
+
+### 鍒犻櫎鑷姪缁堢搴旂敤妯℃澘淇℃伅瀛楁
+
+**璇锋眰URL:** app/info/templete/field/delete
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎鑷姪缁堢搴旂敤妯℃澘淇℃伅瀛楁
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|String|鏄瘄鏁扮粍
+
+**璇锋眰鏍蜂緥:**
+
+```
+    http://localhost:8080/app/info/templete/field/delete?id=1&id=2'
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+	"msg":"鎴愬姛"
+}
+
+```
+
+## 鑷姪缁堢搴旂敤鐗堟湰鍘嗗彶
+
+### 鏌ヨ鑷姪缁堢搴旂敤鐗堟湰鍘嗗彶鍒楄〃
+
+**璇锋眰URL:** app/version/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ鑷姪缁堢搴旂敤鐗堟湰鍘嗗彶
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+page|Integer|鍚褰撳墠椤�
+size|Integer|鍚姣忛〉鏉℃暟锛屽€间负-1锛屾煡璇㈡墍鏈夎褰�
+appId|Long|鍚app搴旂敤Id
+appName|String|鍚搴旂敤鍚嶇О,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+
+**璇锋眰鏍蜂緥:**
+
+```
+  {
+        "appId":1,
+        "appName":"oife95",
+        "page":1,
+        "size":10
+  }
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О| 鍙傛暟绫诲瀷     |鎻忚堪
+:---|:---------|:------
+code| Integer  |缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg| String   |娑堟伅
+data| object   |鏁版嵁瀵硅薄
+&emsp;per_page| Integer  |姣忛〉鏉℃暟
+&emsp;total| Integer  |鎬绘潯鏁�
+&emsp;last_page| Integer  |鎬婚〉鏁�
+&emsp;current_page| Integer  |褰撳墠椤�
+&emsp;data| array    |缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id| Long     |涓婚敭ID锛屼富閿紝鑷闀�
+&emsp;&emsp;appId| Long     |app搴旂敤Id
+&emsp;&emsp;appName| String   |搴旂敤鍚嶇О
+&emsp;&emsp;version| Integer  |鐗堟湰鍙�
+&emsp;&emsp;notes| String   |鏇存柊璇存槑
+&emsp;&emsp;createTime| Date     |鍒涘缓鏃堕棿
+&emsp;&emsp;updateUserId| Long     |鏇存柊鐢ㄦ埛
+&emsp;&emsp;updateTime| Date     |鏇存柊鏃堕棿
+dict| object   |瀛楀吀瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+    "data":{
+    }
+}
+```
+
+### 鏌ョ湅鑷姪缁堢搴旂敤鐗堟湰鍘嗗彶
+
+**璇锋眰URL:** app/version/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅鑷姪缁堢搴旂敤鐗堟湰鍘嗗彶锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|Long|鏄瘄ID
+
+**璇锋眰鏍蜂緥:**
+
+```
+    http://localhost/app/version/info?id=549
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:-------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|涓婚敭ID锛屼富閿紝鑷闀�
+&emsp;appId|Long|app搴旂敤Id
+&emsp;appName|String|搴旂敤鍚嶇О
+&emsp;version|String|鐗堟湰鍙�
+&emsp;notes|String|鏇存柊璇存槑
+&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;updateUserId|Long|鏇存柊鐢ㄦ埛
+&emsp;updateTime|Date|鏇存柊鏃堕棿
+dict|object|瀛楀吀瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code": 1,
+    "data": {
+            "id":7243,
+            "appId":2866,
+            "appName":"1c09qi",
+            "version":"nadvgo",
+            "notes":"0h0p5e",
+            "createTime":"2022-11-28",
+            "updateUserId":4740,
+            "updateTime":"2022-11-28"
+        }
+}
+```
+
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋
+&emsp;&emsp;id|Long|涓婚敭ID锛屼富閿紝鑷闀�
+&emsp;&emsp;appId|Long|app搴旂敤Id
+&emsp;&emsp;appName|String|搴旂敤鍚嶇О
+&emsp;&emsp;version|String|鐗堟湰鍙�
+&emsp;&emsp;notes|String|鏇存柊璇存槑
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;updateUserId|Long|鏇存柊鐢ㄦ埛
+&emsp;&emsp;updateTime|Date|鏇存柊鏃堕棿
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{}
+    }
+}
+
+```
+
+### 鍒犻櫎鑷姪缁堢搴旂敤鐗堟湰鍘嗗彶
+
+**璇锋眰URL:** app/version/delete
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎鑷姪缁堢搴旂敤鐗堟湰鍘嗗彶
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|String|鏄瘄鏁扮粍
+
+**璇锋眰鏍蜂緥:**
+
+```
+    http://localhost:8080/app/version/delete?id=1&id=2'
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "code":1,
+	"msg":"鎴愬姛"
+}
+
+```
+
+
+### 鑷姪缁堢搴旂敤浣跨敤
+
+**璇锋眰URL:** app/version/used
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鑷富缁堢閮ㄧ讲
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷| 蹇呭~  |鎻忚堪
+:---|:---|:----|:-------
+appVersionId|Long| 鏄�   |搴旂敤鐗堟湰 Id
+
+**璇锋眰鏍蜂緥:**
+
+```
+{
+    "appVersionId":1
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "msg":"搴旂敤鎴愬姛",
+    "code":1,
+    "data":{}
+    }
+}
+
+```
+
+### 鑷姪缁堢搴旂敤棰勮
+
+**璇锋眰URL:** app/version/preview
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鑷富缁堢棰勮
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷| 蹇呭~  |鎻忚堪
+:---|:---|:----|:-------
+appVersionId|Long| 鏄�   |搴旂敤鐗堟湰 Id
+
+**璇锋眰鏍蜂緥:**
+
+```
+{
+    "appVersionId":1
+}
+
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|璇锋眰鍦板潃
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+    "msg":"搴旂敤鎴愬姛",
+    "code":1,
+    "data":"http://www.baidu.com/aa/"
+    }
+}
+
+```
+
+
+## 寰畼缃戜簨椤�
+
+### 鏌ヨ寰畼缃戜簨椤瑰垪琛�
+
+**璇锋眰URL:** micro/matter/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ寰畼缃戜簨椤瑰垪琛�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О| 绫诲瀷      |澶囨敞|蹇呭~|鍏跺畠
+---|---------|--|---|---
+page| Integer |褰撳墠椤祙鍚-
+size| Integer |姣忛〉鏉℃暟|鍚-1浠h〃鎵€鏈�
+idList| List    |浜嬮」IDs|鍚-
+
+
+**璇锋眰鏍蜂緥:**
+
+```
+{
+  "idList": [1,2],
+  "page": 1,
+  "size": 10
+}
+```
+
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О | 鍙傛暟绫诲瀷    | 澶囨敞              |鍏跺畠
+---|---------|-----------------|---
+code| Integer | 缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛� |-
+msg| String  | 娑堟伅              |-
+data| object  | 鏁版嵁瀵硅薄            |-
+&emsp;data| array   | 缁撴灉闆嗗垪琛�           |鏁扮粍
+&emsp;&emsp;id| Long    | 浜嬮」id            |-
+&emsp;&emsp;operateSite| String  | 绔欑偣鍚嶇О            |-
+&emsp;&emsp;deptName| String  | 鍔炵悊閮ㄩ棬            |-
+&emsp;&emsp;matterName| String  | 浜嬮」鍚嶇О            |-
+&emsp;&emsp;matterNo| String  | 浜嬮」缂栧彿            |-
+&emsp;&emsp;windowToTheSceneNum| Int     | 绐楀彛鍒扮幇鍦烘鏁�            |-
+&emsp;&emsp;onlineToTheSceneNum| Int  | 缃戝姙鍒扮幇鍦烘鏁�            |-
+&emsp;&emsp;promiseTimeLimitShow| Int  | 鎵胯鍔炵粨鏃堕檺            |-        |-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+
+```
+{
+  "data": {
+    "data": [
+      {
+        "id": 2,
+        "operateSite": "",
+        "deptName": "鍘挎按鍒╁眬",
+        "windowToTheSceneNum": 0,
+        "onlineToTheSceneNum": 0,
+        "promiseTimeLimitShow": ""
+      },
+      {
+        "id": 7,
+        "operateSite": "",
+        "deptName": "鍘挎枃骞挎梾灞€",
+        "windowToTheSceneNum": 0,
+        "onlineToTheSceneNum": 0,
+        "promiseTimeLimitShow": ""
+      }
+    ],
+    "pageInfo": {
+      "beginIndex": 0,
+      "prePageResult": 10,
+      "totalResult": 2,
+      "totalPage": 1,
+      "currPage": 1,
+      "displayPageSize": 5,
+      "hasNextPage": false,
+      "hasPrePage": false,
+      "countPage": true
+    }
+  },
+  "code": 1,
+  "msg": "鏌ヨ寰畼缃戜簨椤瑰垪琛ㄦ垚鍔�"
+}
+```
+
+## 鏍疯〃鎶ヨ〃鏈嶅姟
+
+### 鏌ヨ鏍锋姤鏈嶅姟鍒楄〃
+
+**璇锋眰URL:** sampleform/sample/bill/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ鏍疯〃鎶ヨ〃鏈嶅姟
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+page|Integer|鍚褰撳墠椤�
+size|Integer|鍚姣忛〉鏉℃暟锛屽€间负-1锛屾煡璇㈡墍鏈夎褰�
+siteId|Long|鍚绔欑偣ID
+matterName|String|鍚浜嬮」鍚嶇О,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+materialName|String|鍚鏉愭枡鍚嶇О,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+operTimeStart|String|鍚鎿嶄綔寮€濮嬫椂闂�
+operTimeEnd|String|鍚鎿嶄綔缁撴潫鏃堕棿
+
+**璇锋眰鏍蜂緥:**
+```
+  {
+        "siteId":1,
+        "matterName":"%xxxx%",
+        "materialName":"%xxxxx%",
+        "operTimeStart":"2023-02-23",
+        "operTimeEnd":"2023-02-24",
+        "page":1,
+        "size":10
+  }
+
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О|鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;per_page|Integer|姣忛〉鏉℃暟
+&emsp;total|Integer|鎬绘潯鏁�
+&emsp;last_page|Integer|鎬婚〉鏁�
+&emsp;current_page|Integer|褰撳墠椤�
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|涓婚敭锛岃嚜澧為暱
+&emsp;&emsp;siteId|Long|绔欑偣ID
+&emsp;&emsp;matterId|Long|浜嬮」id
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О
+&emsp;&emsp;matterFullName|String|浜嬮」鍏ㄧО
+&emsp;&emsp;materialName|String|鏉愭枡鍚嶇О
+&emsp;&emsp;materialFullName|String|鏉愭枡鍏ㄧО
+&emsp;&emsp;deviceCode|String|璁惧缂栫爜
+&emsp;&emsp;deviceName|String|璁惧鍚嶇О
+&emsp;&emsp;operTime|Date|鎿嶄綔鏃堕棿
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿
+dict|object|瀛楀吀瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code":1,
+    "data":{
+    }
+}
+```
+
+### 鏌ョ湅鏍疯〃鎶ヨ〃鏈嶅姟
+
+**璇锋眰URL:** sampleform/sample/bill/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅鏍疯〃鏈嶅姟锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|Long|鏄瘄ID
+
+**璇锋眰鏍蜂緥:**
+```
+    http://localhost/sample/bill/info?id=549
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:-------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|涓婚敭锛岃嚜澧為暱
+&emsp;siteId|Long|绔欑偣ID
+&emsp;matterId|Long|浜嬮」id
+&emsp;matterName|String|浜嬮」鍚嶇О
+&emsp;matterFullName|String|浜嬮」鍏ㄧО
+&emsp;materialName|String|鏉愭枡鍚嶇О
+&emsp;materialFullName|String|鏉愭枡鍏ㄧО
+&emsp;deviceCode|String|璁惧缂栫爜
+&emsp;deviceName|String|璁惧鍚嶇О
+&emsp;operTime|Date|鎿嶄綔鏃堕棿
+&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;updateTime|Date|淇敼鏃堕棿
+dict|object|瀛楀吀瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code": 1,
+    "data": {
+            "id":2816,
+            "siteId":644,
+            "matterId":9498,
+            "matterName":"56bz30",
+            "matterFullName":"9fyv44",
+            "materialName":"kiq3e4",
+            "materialFullName":"xbseak",
+            "deviceCode":"5plyd7",
+            "deviceName":"yt2qku",
+            "operTime":"2023-02-23",
+            "createTime":"2023-02-23",
+            "createUserId":644,
+            "updateTime":"2023-02-23"
+        }
+}
+```
+
+
+## 濉崟鎶ヨ〃鍒楄〃
+
+### 鏌ヨ濉崟鎶ヨ〃鍒楄〃
+
+**璇锋眰URL:** fm/matter/datum/print/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ濉崟鎶ヨ〃
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+page|Integer|鍚褰撳墠椤�
+size|Integer|鍚姣忛〉鏉℃暟锛屽€间负-1锛屾煡璇㈡墍鏈夎褰�
+siteId|Long|鍚绔欑偣ID
+matterName|String|鍚浜嬮」鍚�,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+materialName|String|鍚鏉愭枡鍚�,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ
+createTimeStart|String|鍚鎿嶄綔寮€濮嬫椂闂�
+createTimeEnd|String|鍚鎿嶄綔缁撴潫鏃堕棿
+type|Integer|鍚鎵撳嵃绫诲瀷(1.鏈湴鎵撳嵃,2.鍦ㄧ嚎鎵撳嵃)
+
+**璇锋眰鏍蜂緥:**
+```
+  {
+        "materialName":"%xxxxx%",
+        "createTimeStart":"2022-01-11",
+        "createTimeEnd":"2022-01-15",
+        "materialName":"%xxxxx%",
+        "siteId":1,
+        "page":1,
+        "type":1,
+        "page":1,
+        "size":10
+  }
+
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О|鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;per_page|Integer|姣忛〉鏉℃暟
+&emsp;total|Integer|鎬绘潯鏁�
+&emsp;last_page|Integer|鎬婚〉鏁�
+&emsp;current_page|Integer|褰撳墠椤�
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|涓婚敭锛岃嚜澧為暱
+&emsp;&emsp;siteId|Long|绔欑偣id
+&emsp;&emsp;orderId|String|鎵撳嵃璁㈠崟
+&emsp;&emsp;materialId|Long|鏉愭枡Id
+&emsp;&emsp;materialName|String|鏉愭枡鍚�
+&emsp;&emsp;printPage|Integer|鏉愭枡椤垫暟
+&emsp;&emsp;type|Integer|鎵撳嵃绫诲瀷(1.鏈湴鎵撳嵃,2.鍦ㄧ嚎鎵撳嵃)
+&emsp;&emsp;docPath|String|鍚堟垚doc鍚庡湴鍧€
+&emsp;&emsp;formContent|String|鎻愪氦鐨勮〃鍗�
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿
+&emsp;&emsp;idCard|String|韬唤璇佸彿
+&emsp;&emsp;idName|String|韬唤璇佸悕绉�
+&emsp;&emsp;mobile|String|鎵嬫満鍙风爜
+&emsp;&emsp;matterId|Long|浜嬮」id
+&emsp;&emsp;matterName|String|浜嬮」鍚嶇О
+&emsp;&emsp;matterCode|String|浜嬮」缂栫爜
+&emsp;&emsp;deviceCode|String|璁惧缂栫爜
+&emsp;&emsp;deviceName|String|璁惧鍚嶇О
+dict|object|瀛楀吀瀵硅薄
+&emsp;type|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code":1,
+    "data":{
+    }
+}
+```
+
+### 鏌ョ湅濉崟鎶ヨ〃
+
+**璇锋眰URL:** fm/matter/datum/print/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅濉崟鎶ヨ〃锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|Long|鏄瘄ID
+
+**璇锋眰鏍蜂緥:**
+```
+    http://localhost/fm/matter/datum/print/info?id=549
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:-------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|涓婚敭锛岃嚜澧為暱
+&emsp;siteId|Long|绔欑偣id
+&emsp;orderId|String|鎵撳嵃璁㈠崟
+&emsp;materialId|Long|鏉愭枡Id
+&emsp;materialName|String|鏉愭枡鍚�
+&emsp;printPage|Integer|鏉愭枡椤垫暟
+&emsp;type|Integer|鎵撳嵃绫诲瀷(1.鏈湴鎵撳嵃,2.鍦ㄧ嚎鎵撳嵃)
+&emsp;docPath|String|鍚堟垚doc鍚庡湴鍧€
+&emsp;formContent|String|鎻愪氦鐨勮〃鍗�
+&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;updateTime|Date|淇敼鏃堕棿
+&emsp;idCard|String|韬唤璇佸彿
+&emsp;idName|String|韬唤璇佸悕绉�
+&emsp;mobile|String|鎵嬫満鍙风爜
+&emsp;matterId|Long|浜嬮」id
+&emsp;matterName|String|浜嬮」鍚嶇О
+&emsp;matterCode|String|浜嬮」缂栫爜
+&emsp;deviceCode|String|璁惧缂栫爜
+&emsp;deviceName|String|璁惧鍚嶇О
+dict|object|瀛楀吀瀵硅薄
+&emsp;type|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code": 1,
+    "data": {
+            "id":9177,
+            "orderId":"dhhddy",
+            "materialId":2805,
+            "materialName":"hz30qw",
+            "page":7237,
+            "type":340,
+            "docPath":"aw74kl",
+            "formContent":"h719lm",
+            "createTime":"2022-12-09",
+            "createUserId":7489,
+            "updateTime":"2022-12-09"
+        }
+}
+```
+
+
+## 寰腑鍙�
+
+### 鑾峰彇寰腑鍙扮鍚嶄俊鎭�
+
+**璇锋眰URL:** base/mid/sign
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鑾峰彇寰腑鍙扮鍚嶄俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+method|String|鏄瘄璇锋眰鏂规硶锛坧ost鎴栬€単et锛�
+body|String|鏄瘄璇锋眰鍙傛暟浣�
+
+**璇锋眰鏍蜂緥:**
+```
+{
+ "method":"post",
+  "body":"{\"test\":\"鍝堝搱鍝圽"}"
+}
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О|鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;appId|String|搴旂敤id
+&emsp;appKey|String|搴旂敤key
+&emsp;timeStamp|String|鏃堕棿鎴�
+&emsp;nonce|String|闅忔満鏁�
+&emsp;secretKey|String|瀵嗙爜
+&emsp;sign|String|绛惧悕
+
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code":1,
+    "data":{
+    }
+}
+```
+
+## 璁惧缁熻
+
+### 鏌ヨ璁惧缁熻鍒楄〃
+
+**璇锋眰URL:** m/device/stat/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ璁惧缁熻
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+page|Integer|鍚褰撳墠椤�
+size|Integer|鍚姣忛〉鏉℃暟锛屽€间负-1锛屾煡璇㈡墍鏈夎褰�
+siteId|Long|鍚绔欑偣Id锛屾潵婧愬熀纭€鏈嶅姟骞冲彴
+deviceUnActiveCount|Integer|鍚鏈縺娲昏澶囨暟閲�
+deviceUnActiveRatio|BigDecimal|鍚鏈縺娲荤巼
+year|Integer|鍚骞�
+month|Integer|鍚鏈�
+day|Integer|鍚鏃�
+
+**璇锋眰鏍蜂緥:**
+```
+  {
+        "siteId":6055,
+        "deviceUnActiveCount":5180,
+        "deviceUnActiveRatio":0.15
+        "page":1,
+        "size":10
+  }
+
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О|鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;per_page|Integer|姣忛〉鏉℃暟
+&emsp;total|Integer|鎬绘潯鏁�
+&emsp;last_page|Integer|鎬婚〉鏁�
+&emsp;current_page|Integer|褰撳墠椤�
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|ID
+&emsp;&emsp;deviceTotalCount|Integer|璁惧鎬绘暟
+&emsp;&emsp;deviceAddCount|Integer|鏄ㄦ棩鏂板鍑忓皯璁惧鏁伴噺
+&emsp;&emsp;siteTotalCount|Integer|鐩戞帶绔欑偣鏁伴噺
+&emsp;&emsp;siteAddCount|Integer|鏄ㄦ棩鏂板绔欑偣鏁伴噺
+&emsp;&emsp;deviceOnlineCount|Integer|鍦ㄧ嚎璁惧鏁伴噺
+&emsp;&emsp;deviceOnlineRatio|BigDecimal|鍦ㄧ嚎鐜�
+&emsp;&emsp;deviceOfflineCount|Integer|绂荤嚎璁惧鏁伴噺
+&emsp;&emsp;deviceOfflineRatio|BigDecimal|绂荤嚎鐜�
+&emsp;&emsp;deviceStopCount|Integer|鍋滅敤璁惧鏁伴噺
+&emsp;&emsp;deviceStopRatio|BigDecimal|鍋滅敤鐜�
+&emsp;&emsp;alarmTotalCount|Integer|浠婃棩鍛婅鏁伴噺
+&emsp;&emsp;alarmAddCount|Integer|鏄ㄦ棩鏂板鍑忓皯鏁伴噺
+&emsp;&emsp;pushTotalCount|Integer|浠婃棩娑堟伅鎺ㄩ€佹暟閲�
+&emsp;&emsp;pushAddCount|Integer|鏄ㄦ棩鏂板鍑忓皯鏁伴噺
+&emsp;&emsp;uploadMessageTotalCount|Integer|浠婃棩涓婅娑堟伅鏁伴噺
+&emsp;&emsp;downloadMessageTotalCount|Integer|浠婃棩涓嬭娑堟伅鏁伴噺
+&emsp;&emsp;year|Integer|骞�
+&emsp;&emsp;month|Integer|鏈�
+&emsp;&emsp;day|Integer|鏃�
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;updateUserId|Long|鏇存柊鐢ㄦ埛
+&emsp;&emsp;updateTime|Date|鏇存柊鏃堕棿
+&emsp;&emsp;siteId|Long|绔欑偣Id锛屾潵婧愬熀纭€鏈嶅姟骞冲彴
+&emsp;&emsp;deviceUnActiveCount|Integer|鏈縺娲昏澶囨暟閲�
+&emsp;&emsp;deviceUnActiveRatio|BigDecimal|鏈縺娲荤巼
+dict|object|瀛楀吀瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code":1,
+    "data":{
+    }
+}
+```
+
+## 绔欑偣澶у巺淇℃伅
+
+### 鏌ヨ绔欑偣澶у巺淇℃伅鍒楄〃
+
+**璇锋眰URL:** site/hall/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ绔欑偣澶у巺淇℃伅
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+page|Integer|鍚褰撳墠椤�
+size|Integer|鍚姣忛〉鏉℃暟锛屽€间负-1锛屾煡璇㈡墍鏈夎褰�
+
+**璇锋眰鏍蜂緥:**
+```
+  {
+        "page":1,
+        "size":10
+  }
+
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О|鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;per_page|Integer|姣忛〉鏉℃暟
+&emsp;total|Integer|鎬绘潯鏁�
+&emsp;last_page|Integer|鎬婚〉鏁�
+&emsp;current_page|Integer|褰撳墠椤�
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;&emsp;siteId|Long|绔欑偣ID
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О
+&emsp;&emsp;hallName|String|澶у巺鍚嶇О
+&emsp;&emsp;address|String|鍦板潃
+&emsp;&emsp;floor|Integer|妤煎眰
+&emsp;&emsp;build|Integer|妤兼爧
+&emsp;&emsp;remark|String|澶囨敞
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;&emsp;updateUserId|Long|鏇存柊鐢ㄦ埛
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿
+dict|object|瀛楀吀瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code":1,
+    "data":{
+    }
+}
+```
+
+### 鏌ョ湅绔欑偣澶у巺淇℃伅
+
+**璇锋眰URL:** site/hall/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅绔欑偣澶у巺淇℃伅锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|Long|鏄瘄ID
+
+**璇锋眰鏍蜂緥:**
+```
+    http://localhost/site/hall/info?id=549
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:-------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;siteId|Long|绔欑偣ID
+&emsp;siteName|String|绔欑偣鍚嶇О
+&emsp;hallName|String|澶у巺鍚嶇О
+&emsp;address|String|鍦板潃
+&emsp;floor|Integer|妤煎眰
+&emsp;build|Integer|妤兼爧
+&emsp;remark|String|澶囨敞
+&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;updateUserId|Long|鏇存柊鐢ㄦ埛
+&emsp;updateTime|Date|淇敼鏃堕棿
+dict|object|瀛楀吀瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code": 1,
+    "data": {
+            "id":9840,
+            "siteId":5054,
+            "siteName":"i5a751",
+            "hallName":"hoz3ni",
+            "address":"s6vhsd",
+            "floor":6966,
+            "build":7397,
+            "remark":"fjcm49",
+            "createTime":"2023-04-25",
+            "createUserId":9242,
+            "updateUserId":5587,
+            "updateTime":"2023-04-25"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊绔欑偣澶у巺淇℃伅
+
+**璇锋眰URL:** site/hall/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂扮珯鐐瑰ぇ鍘呬俊鎭細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:-------
+siteId|Long|鍚绔欑偣ID
+siteName|String|鍚绔欑偣鍚嶇О
+hallName|String|鍚澶у巺鍚嶇О
+address|String|鍚鍦板潃
+floor|Integer|鍚妤煎眰
+build|Integer|鍚妤兼爧
+remark|String|鍚澶囨敞
+
+**璇锋眰鏍蜂緥:**
+```
+{
+    "siteId":4938,
+    "siteName":"8ivb5x",
+    "hallName":"fjm0wv",
+    "address":"fcnr01",
+    "floor":700,
+    "build":4881,
+    "remark":"x1qvxm",
+}
+
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;&emsp;siteId|Long|绔欑偣ID
+&emsp;&emsp;siteName|String|绔欑偣鍚嶇О
+&emsp;&emsp;hallName|String|澶у巺鍚嶇О
+&emsp;&emsp;address|String|鍦板潃
+&emsp;&emsp;floor|Integer|妤煎眰
+&emsp;&emsp;build|Integer|妤兼爧
+&emsp;&emsp;remark|String|澶囨敞
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;&emsp;updateUserId|Long|鏇存柊鐢ㄦ埛
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{}
+    }
+}
+
+```
+
+### 鍒犻櫎绔欑偣澶у巺淇℃伅
+
+**璇锋眰URL:** site/hall/delete
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎绔欑偣澶у巺淇℃伅
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|String|鏄瘄鏁扮粍
+
+**璇锋眰鏍蜂緥:**
+```
+    http://localhost:8080/site/hall/delete?id=1&id=2'
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code":1,
+	"msg":"鎴愬姛"
+}
+
+```
+## 澶у巺绐楀彛
+
+### 鏌ヨ澶у巺绐楀彛鍒楄〃
+
+**璇锋眰URL:** window/hall/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ澶у巺绐楀彛
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+page|Integer|鍚褰撳墠椤�
+size|Integer|鍚姣忛〉鏉℃暟锛屽€间负-1锛屾煡璇㈡墍鏈夎褰�
+
+**璇锋眰鏍蜂緥:**
+```
+  {
+        "page":1,
+        "size":10
+  }
+
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О|鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;per_page|Integer|姣忛〉鏉℃暟
+&emsp;total|Integer|鎬绘潯鏁�
+&emsp;last_page|Integer|鎬婚〉鏁�
+&emsp;current_page|Integer|褰撳墠椤�
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;&emsp;windowId|Long|绐楀彛ID
+&emsp;&emsp;windowName|String|绐楀彛鍚嶇О
+&emsp;&emsp;hallId|Long|澶у巺ID
+&emsp;&emsp;hallName|String|澶у巺鍚嶇О
+&emsp;&emsp;sort|Integer|鎺掑簭
+&emsp;&emsp;remark|String|澶囨敞
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿
+dict|object|瀛楀吀瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code":1,
+    "data":{
+    }
+}
+```
+
+### 鏌ョ湅澶у巺绐楀彛
+
+**璇锋眰URL:** window/hall/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅澶у巺绐楀彛锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|Long|鏄瘄ID
+
+**璇锋眰鏍蜂緥:**
+```
+    http://localhost/window/hall/info?id=549
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:-------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;windowId|Long|绐楀彛ID
+&emsp;windowName|String|绐楀彛鍚嶇О
+&emsp;hallId|Long|澶у巺ID
+&emsp;hallName|String|澶у巺鍚嶇О
+&emsp;sort|Integer|鎺掑簭
+&emsp;remark|String|澶囨敞
+&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;updateTime|Date|淇敼鏃堕棿
+dict|object|瀛楀吀瀵硅薄
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code": 1,
+    "data": {
+            "id":6104,
+            "windowId":6254,
+            "windowName":"1c5gt9",
+            "hallId":6706,
+            "hallName":"kneski",
+            "sort":6714,
+            "remark":"g8htor",
+            "createTime":"2023-04-25",
+            "createUserId":5190,
+            "updateTime":"2023-04-25"
+        }
+}
+```
+
+### 淇濆瓨鏇存柊澶у巺绐楀彛
+
+**璇锋眰URL:** window/hall/save
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂板ぇ鍘呯獥鍙o細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:-------
+windowId|Long|鍚绐楀彛ID
+windowName|String|鍚绐楀彛鍚嶇О
+hallId|Long|鍚澶у巺ID
+hallName|String|鍚澶у巺鍚嶇О
+sort|Integer|鍚鎺掑簭
+remark|String|鍚澶囨敞
+
+**璇锋眰鏍蜂緥:**
+```
+{
+    "windowId":7283,
+    "windowName":"0n0oca",
+    "hallId":5929,
+    "hallName":"ukcvnf",
+    "sort":298,
+    "remark":"b9xvxa",
+}
+
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|淇濆瓨鍚庝富閿甶d
+&emsp;entity|object|淇濆瓨鏇存柊瀹炰綋
+&emsp;&emsp;id|Long|搴忓彿锛屼富閿紝鑷闀�
+&emsp;&emsp;windowId|Long|绐楀彛ID
+&emsp;&emsp;windowName|String|绐楀彛鍚嶇О
+&emsp;&emsp;hallId|Long|澶у巺ID
+&emsp;&emsp;hallName|String|澶у巺鍚嶇О
+&emsp;&emsp;sort|Integer|鎺掑簭
+&emsp;&emsp;remark|String|澶囨敞
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;createUserId|Long|鍒涘缓鐢ㄦ埛
+&emsp;&emsp;updateTime|Date|淇敼鏃堕棿
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "msg":"鏂板妯″潡鎴愬姛",
+    "code":1,
+    "data":{}
+    }
+}
+
+```
+
+### 鍒犻櫎澶у巺绐楀彛
+
+**璇锋眰URL:** window/hall/delete
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鍒犻櫎澶у巺绐楀彛
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|String|鏄瘄鏁扮粍
+
+**璇锋眰鏍蜂緥:**
+```
+    http://localhost:8080/window/hall/delete?id=1&id=2'
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠
+---|---|---|---
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊-
+msg|String|娑堟伅|-
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code":1,
+	"msg":"鎴愬姛"
+}
+
+```
+
+
+## 璁惧鍛婅鏃ュ織
+
+### 鏌ヨ璁惧鍛婅鏃ュ織鍒楄〃
+
+**璇锋眰URL:** m/device/alarm/info/list
+
+**璇锋眰鏂瑰紡:** POST
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ヨ璁惧鍛婅鏃ュ織
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+page|Integer|鍚褰撳墠椤�
+size|Integer|鍚姣忛〉鏉℃暟锛屽€间负-1锛屾煡璇㈡墍鏈夎褰�
+deviceName|String|鍚璁惧鍚嶇О锛屽墠鍚庢坊鍔�%%杩涜妯$硦鎼滅储
+alarmType|Integer|鍚鍛婅绫诲瀷(0.绂荤嚎)
+alarmStatus|Integer|鍚鍛婅鐘舵€�,鏉ヨ嚜宸ュ崟绯荤粺(0.鏈竻闄わ紝1.娓呴櫎鏈‘璁わ紝2.娓呴櫎宸茬‘璁�)
+alarmTimeStart|String|鍚鍛婅寮€濮嬫椂闂�
+alarmTimeEnd|String|鍚鍛婅缁撴潫鏃堕棿
+siteId|Long|鍚绔欑偣Id
+
+**璇锋眰鏍蜂緥:**
+```
+  {
+        "deviceName":"%娴嬭瘯%",
+        "alarmType":0,
+        "alarmStatus":0,
+        "siteId":1,
+        "page":1,
+        "size":10,
+        "alarmTimeStart":"2023-04-25",
+        "alarmTimeEnd":"2023-04-26",
+  }
+
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О|鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;per_page|Integer|姣忛〉鏉℃暟
+&emsp;total|Integer|鎬绘潯鏁�
+&emsp;last_page|Integer|鎬婚〉鏁�
+&emsp;current_page|Integer|褰撳墠椤�
+&emsp;data|array|缁撴灉闆嗗垪琛▅鏁扮粍
+&emsp;&emsp;id|Long|涓婚敭ID锛屼富閿紝鑷闀�
+&emsp;&emsp;alarmTime|Date|鍛婅鏃堕棿
+&emsp;&emsp;alarmDevice|Long|鍛婅璁惧Id
+&emsp;&emsp;alarmType|Integer|鍛婅绫诲瀷,(0.绂荤嚎)
+&emsp;&emsp;alarmLevel|Integer|鍛婅绾у埆(0.鍗遍櫓锛�1.娆¤锛�2.涓€鑸�)
+&emsp;&emsp;alarmReceivePersonnel|String|鎺ユ敹浜哄憳[璁惧绠$悊鐨勮矗浠讳汉]
+&emsp;&emsp;receivePersonnelTelephone|String|鎺ユ敹浜哄憳鐢佃瘽
+&emsp;&emsp;alarmStatus|Integer|鍛婅鐘舵€�,鏉ヨ嚜宸ュ崟绯荤粺(0.鏈竻闄わ紝1.娓呴櫎鏈‘璁わ紝2.娓呴櫎宸茬‘璁�)
+&emsp;&emsp;alarmContent|String|鍛婅璇︾粏鍐呭
+&emsp;&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;&emsp;updateUserId|Long|鏇存柊鐢ㄦ埛
+&emsp;&emsp;updateTime|Date|鏇存柊鏃堕棿
+&emsp;&emsp;siteId|Long|绔欑偣Id锛屾潵婧愬熀纭€鏈嶅姟骞冲彴
+&emsp;&emsp;deviceCode|String|璁惧缂栫爜
+&emsp;&emsp;deviceName|String|璁惧鍚嶇О
+dict|object|瀛楀吀瀵硅薄
+&emsp;alarmType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;alarmLevel|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;alarmStatus|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code":1,
+    "data":{
+    }
+}
+```
+
+### 鏌ョ湅璁惧鍛婅鏃ュ織
+
+**璇锋眰URL:** m/device/alarm/info/info
+
+**璇锋眰鏂瑰紡:** GET
+
+**鍐呭绫诲瀷:** application/json;charset=utf-8
+
+**绠€瑕佹弿杩�:** 鏌ョ湅璁惧鍛婅鏃ュ織锛岃繑鍥炲疄渚嬭缁嗕俊鎭�
+
+**璇锋眰鍙傛暟:**
+
+鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪
+:---|:---|:---|:------
+id|Long|鏄瘄ID
+
+**璇锋眰鏍蜂緥:**
+```
+    http://localhost/device/alarm/info/info?id=549
+```
+**鍝嶅簲鍙傛暟:**
+
+鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪
+:---|:---|:-------
+code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛�
+msg|String|娑堟伅
+data|object|鏁版嵁瀵硅薄
+&emsp;id|Long|涓婚敭ID锛屼富閿紝鑷闀�
+&emsp;alarmTime|Date|鍛婅鏃堕棿
+&emsp;alarmDevice|Long|鍛婅璁惧Id
+&emsp;alarmType|Integer|鍛婅绫诲瀷,(0.绂荤嚎)
+&emsp;alarmLevel|Integer|鍛婅绾у埆(0.鍗遍櫓锛�1.娆¤锛�2.涓€鑸�)
+&emsp;alarmReceivePersonnel|String|鎺ユ敹浜哄憳[璁惧绠$悊鐨勮矗浠讳汉]
+&emsp;receivePersonnelTelephone|String|鎺ユ敹浜哄憳鐢佃瘽
+&emsp;alarmStatus|Integer|鍛婅鐘舵€�,鏉ヨ嚜宸ュ崟绯荤粺(0.鏈竻闄わ紝1.娓呴櫎鏈‘璁わ紝2.娓呴櫎宸茬‘璁�)
+&emsp;alarmContent|String|鍛婅璇︾粏鍐呭
+&emsp;createTime|Date|鍒涘缓鏃堕棿
+&emsp;updateUserId|Long|鏇存柊鐢ㄦ埛
+&emsp;updateTime|Date|鏇存柊鏃堕棿
+&emsp;siteId|Long|绔欑偣Id锛屾潵婧愬熀纭€鏈嶅姟骞冲彴
+&emsp;deviceCode|String|璁惧缂栫爜
+&emsp;deviceName|String|璁惧鍚嶇О
+dict|object|瀛楀吀瀵硅薄
+&emsp;alarmType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;alarmLevel|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+&emsp;alarmStatus|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍
+
+**鍝嶅簲娑堟伅鏍蜂緥:**
+```
+{
+    "code": 1,
+    "data": {
+            "id":1196,
+            "alarmTime":"2023-04-27",
+            "alarmDevice":779,
+            "alarmType":2479,
+            "alarmLevel":3913,
+            "alarmReceivePersonnel":"5qpgct",
+            "receivePersonnelTelephone":"bi9uwy",
+            "alarmStatus":5144,
+            "alarmContent":"ncrl5t",
+            "createTime":"2023-04-27",
+            "updateUserId":4280,
+            "updateTime":"2023-04-27",
+            "siteId":4085,
+            "deviceCode":"snkbdp",
+            "deviceName":"yoerxw"
+        }
+}
+```
+
+
+## 瀛楀吀闄勫綍
diff --git "a/base-manager/doc/~$\346\234\215\345\212\241\345\271\263\345\217\260\350\256\276\350\256\241\346\226\207\346\241\2431.0.docx" "b/base-manager/doc/~$\346\234\215\345\212\241\345\271\263\345\217\260\350\256\276\350\256\241\346\226\207\346\241\2431.0.docx"
new file mode 100644
index 0000000000000000000000000000000000000000..08cfb697e6386ce50dd2530ae814ee9cc1229e68
Binary files /dev/null and "b/base-manager/doc/~$\346\234\215\345\212\241\345\271\263\345\217\260\350\256\276\350\256\241\346\226\207\346\241\2431.0.docx" differ
diff --git a/base-manager/src/main/java/com/mortals/xhx/annotation/DataPermission.java b/base-manager/src/main/java/com/mortals/xhx/annotation/DataPermission.java
new file mode 100644
index 0000000000000000000000000000000000000000..99d21e4306eadf4d80b3d05be0bc996ffb5b2d68
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/annotation/DataPermission.java
@@ -0,0 +1,24 @@
+package com.mortals.xhx.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ *
+ * @author: zxfei
+ * @date: 2024/5/15 16:09
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.TYPE, ElementType.METHOD})
+@Documented
+public @interface DataPermission {
+    /**
+     * 鏁版嵁鏉冮檺绫诲瀷
+     * 1 涓婁笅绾ф巿鏉�  2 鏁版嵁鑼冨洿鎺堟潈
+     */
+    String permissionType() default "2";
+
+    /**
+     * 閰嶇疆鑿滃崟鐨勭粍浠惰矾寰�,鐢ㄤ簬鏁版嵁鏉冮檺
+     */
+    String componentRoute() default "";
+}
diff --git a/base-manager/src/main/java/com/mortals/xhx/base/framework/aspect/DataPermissionAspect.java b/base-manager/src/main/java/com/mortals/xhx/base/framework/aspect/DataPermissionAspect.java
new file mode 100644
index 0000000000000000000000000000000000000000..3cec5fab39f5f93b1f8f2f2a9a325cdc85b8194d
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/base/framework/aspect/DataPermissionAspect.java
@@ -0,0 +1,70 @@
+package com.mortals.xhx.base.framework.aspect;
+
+import com.mortals.framework.service.IAuthTokenService;
+import com.mortals.framework.service.IUser;
+import com.mortals.xhx.annotation.DataPermission;
+import com.mortals.xhx.common.utils.RuleQueryGenerator;
+import com.mortals.xhx.module.dimension.model.DimensionResourceRuleEntity;
+import com.mortals.xhx.module.dimension.service.DimensionResourceRuleService;
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import java.lang.reflect.Method;
+import java.util.List;
+
+@Aspect
+@Slf4j
+//@Component
+public class DataPermissionAspect {
+
+    @Autowired
+    private DimensionResourceRuleService dimensionResourceRuleService;
+    @Autowired
+    private IAuthTokenService authTokenService;
+
+    public static final String DATA_PERMISSION_SEARCH_SQL = "DATA_PERMISSION_SEARCH_SQL";
+
+    @Pointcut("@annotation(com.mortals.xhx.annotation.DataPermission)")
+    public void pointCut() {
+
+    }
+
+    @Around("pointCut()")
+    public Object around(ProceedingJoinPoint point) throws Throwable {
+        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+        HttpServletRequest request = attributes.getRequest();
+        String componentRoute = request.getServletPath();
+        IUser loginUser = authTokenService.getLoginUser(request);
+        MethodSignature signature = (MethodSignature) point.getSignature();
+        Method method = signature.getMethod();
+        DataPermission permissionData = method.getAnnotation(DataPermission.class);
+        if (!ObjectUtils.isEmpty(permissionData)&&!ObjectUtils.isEmpty(componentRoute)) {
+            //鑾峰彇鎺堟潈鏂瑰紡
+            String permissionType = permissionData.permissionType();
+            //鑾峰彇缁勪欢璺敱  閫氳繃controller 鑾峰彇
+            // String componentRoute = permissionData.componentRoute();
+            // 鏌ユ壘褰撳墠鐢ㄦ埛姝よ祫婧愯矾寰勪笅鐨勬墍鏈夎鍒�
+            List<DimensionResourceRuleEntity> componentRules = dimensionResourceRuleService.getRoleComponentRule(loginUser.getId(), componentRoute);
+            if (!ObjectUtils.isEmpty(componentRules)) {
+                //鍦╮equest娣诲姞灞炴€�
+                //todo 鏋勫缓鏁版嵁鏉冮檺sql 骞惰缃埌request涓€�
+                String permissionSql = RuleQueryGenerator.getPermissionSql(componentRules, loginUser);
+                log.info("permissionSql:{}", permissionSql);
+
+                request.setAttribute(DATA_PERMISSION_SEARCH_SQL, permissionSql);
+            }
+        }
+        return point.proceed();
+    }
+
+}
diff --git a/base-manager/src/main/java/com/mortals/xhx/base/framework/interceptor/AuthTokenServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/base/framework/interceptor/AuthTokenServiceImpl.java
index 4b15787396e328ec6c4fe9aa8f87f08e0b4e58d1..4c33f14f5c0d9e7ddc25e26c6dd88e2c024f30ee 100644
--- a/base-manager/src/main/java/com/mortals/xhx/base/framework/interceptor/AuthTokenServiceImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/base/framework/interceptor/AuthTokenServiceImpl.java
@@ -20,6 +20,7 @@ import io.jsonwebtoken.SignatureAlgorithm;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.context.annotation.Primary;
 import org.springframework.core.annotation.Order;
 import org.springframework.data.redis.core.RedisTemplate;
@@ -44,6 +45,7 @@ import java.util.Set;
 public class AuthTokenServiceImpl implements IAuthTokenService {
 
     @Autowired
+    @Lazy
     private UserService userService;
 
     // 浠ょ墝鑷畾涔夋爣璇�
diff --git a/base-manager/src/main/java/com/mortals/xhx/base/login/web/LoginController.java b/base-manager/src/main/java/com/mortals/xhx/base/login/web/LoginController.java
index 741156aea62a14121bb9a0d501396708ca494511..ad7132c1e95b563337bdc924dbb800fe6e2c031e 100644
--- a/base-manager/src/main/java/com/mortals/xhx/base/login/web/LoginController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/base/login/web/LoginController.java
@@ -32,6 +32,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -61,7 +62,6 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
     @Autowired
     private IUserFeign userFeign;
 
-    private static Log logger = LogFactory.getLog(LoginController.class);
 
     @RequestMapping("login")
     public String login(@RequestBody LoginForm loginForm) throws Exception {
diff --git a/base-manager/src/main/java/com/mortals/xhx/base/system/resource/service/impl/ResourceServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/base/system/resource/service/impl/ResourceServiceImpl.java
index f7ae864a855ded8e5e6b96a145fc04a04570fa47..9f189411c7cbcdd3febdf5fb3149281ca3f1bf5b 100644
--- a/base-manager/src/main/java/com/mortals/xhx/base/system/resource/service/impl/ResourceServiceImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/base/system/resource/service/impl/ResourceServiceImpl.java
@@ -25,6 +25,7 @@ import com.mortals.xhx.base.system.role.service.RoleAuthService;
 import com.mortals.xhx.common.key.RedisKey;
 import com.mortals.xhx.common.utils.ControllerScanUtil;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
@@ -49,6 +50,7 @@ public class ResourceServiceImpl extends AbstractCRUDServiceImpl<ResourceDao, Re
     private ICacheService cacheService;
 
     @Autowired
+    @Lazy
     private RoleAuthService roleAuthService;
 
     @Override
diff --git a/base-manager/src/main/java/com/mortals/xhx/base/system/role/web/RoleController.java b/base-manager/src/main/java/com/mortals/xhx/base/system/role/web/RoleController.java
index 1c3aadfd75ca02f74d2561d2f9bcd4cd3af4f995..91af2ae6ef44d2a919f080314432b339af4afdcf 100644
--- a/base-manager/src/main/java/com/mortals/xhx/base/system/role/web/RoleController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/base/system/role/web/RoleController.java
@@ -7,7 +7,6 @@ import com.mortals.framework.common.code.UserType;
 import com.mortals.framework.model.Context;
 
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
-import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
 import com.mortals.xhx.base.system.role.model.RoleQuery;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
diff --git a/base-manager/src/main/java/com/mortals/xhx/base/system/upload/service/impl/UploadServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/base/system/upload/service/impl/UploadServiceImpl.java
index 102dfb2f860e7de2f5db3dcb176d349e15f5383a..59de8e1f1cf53488fa4897b499fa591874885119 100644
--- a/base-manager/src/main/java/com/mortals/xhx/base/system/upload/service/impl/UploadServiceImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/base/system/upload/service/impl/UploadServiceImpl.java
@@ -58,6 +58,10 @@ public class UploadServiceImpl implements UploadService {
             throw new AppException("鏂囦欢涓婁紶澶у皬瓒呰繃闄愬埗锛�");
         }
 
+        if (null != fileName && fileName.length() > 50) {
+            throw new AppException("鏂囦欢鍚嶇О杩囬暱锛屾棤娉曚笂浼狅紒");
+        }
+
 
         String rootPath = this.filePath.endsWith("/") ? this.filePath : this.filePath + "/";
         String filePath = rootPath + (StringUtils.isEmpty(prePath) ? "" : prePath + "/");
@@ -170,4 +174,14 @@ public class UploadServiceImpl implements UploadService {
         }
     }
 
+
+    public static void main(String[] args) {
+
+        String fileName="濂�.txt";
+
+        System.out.println(fileName.length());
+
+
+    }
+
 }
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/base/system/user/service/impl/UserServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/base/system/user/service/impl/UserServiceImpl.java
index 960e181d4f04a66c63e41db303603c7991a6fb11..dcae307a9ab55f946b3d82be3c96ffe01506b7d9 100644
--- a/base-manager/src/main/java/com/mortals/xhx/base/system/user/service/impl/UserServiceImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/base/system/user/service/impl/UserServiceImpl.java
@@ -77,6 +77,7 @@ public class UserServiceImpl extends AbstractCRUDCacheServiceImpl<UserDao, UserE
     @Autowired
     private RoleUserService roleUserService;
     @Autowired
+    @Lazy
     private SiteService siteService;
 
     @Lazy
@@ -122,6 +123,29 @@ public class UserServiceImpl extends AbstractCRUDCacheServiceImpl<UserDao, UserE
         this.doHandlerUser(entity);
     }
 
+    @Override
+    protected void saveAfter(UserEntity entity, Context context) throws AppException {
+        //鏂板瑙掕壊
+        updateUserRole(entity);
+        super.saveAfter(entity, context);
+    }
+
+    @Override
+    protected void updateAfter(UserEntity entity, Context context) throws AppException {
+        updateUserRole(entity);
+        super.updateAfter(entity, context);
+    }
+
+    private void updateUserRole(UserEntity entity) {
+        if (!ObjectUtils.isEmpty(entity.getId()) && entity.getId().longValue() != SysConstains.ADMIN_ID && !ObjectUtils.isEmpty(entity.getRoleIds())) {
+            RoleUserQuery roleUserQuery = new RoleUserQuery();
+            roleUserQuery.setUserId(entity.getId());
+            List<Long> idList = Arrays.asList(entity.getRoleIds().split(",")).stream().map(Long::parseLong).collect(Collectors.toList());
+            roleUserQuery.setRoleIdList(idList);
+            roleUserService.doDistributionRole(roleUserQuery);
+        }
+    }
+
     @Override
     protected UserEntity findBefore(UserEntity params, Context context) throws AppException {
 //        if (StringUtils.isNotEmpty(params.getDeptIds())) {
diff --git a/base-manager/src/main/java/com/mortals/xhx/base/system/user/web/UserController.java b/base-manager/src/main/java/com/mortals/xhx/base/system/user/web/UserController.java
index bc97a21247b4e1e8b4442e01d1541a3ea92fe7d2..3810d1d4f93267a35376f72e399b0f2895f33e2f 100644
--- a/base-manager/src/main/java/com/mortals/xhx/base/system/user/web/UserController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/base/system/user/web/UserController.java
@@ -17,6 +17,7 @@ import com.mortals.xhx.common.code.UserStatus;
 import io.jsonwebtoken.Claims;
 import io.jsonwebtoken.Jwts;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.ObjectUtils;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
@@ -58,13 +59,13 @@ public class UserController extends BaseCRUDJsonBodyMappingController<UserServic
         }
     }
 
-    @Override
+/*    @Override
     protected void saveBefore(UserEntity entity, Map<String, Object> model, Context context) throws AppException {
-        if (service.existUser(entity.getLoginName(), entity.getId())) {
+        if (!ObjectUtils.isEmpty(entity.getLoginName())&&service.existUser(entity.getLoginName(), entity.getId())) {
             throw new AppException("鐧诲綍鍚嶅凡瀛樺湪锛�");
         }
         super.saveBefore(entity, model, context);
-    }
+    }*/
 
 
     @RequestMapping(value = "change/password", method = RequestMethod.POST)
diff --git a/base-manager/src/main/java/com/mortals/xhx/busiz/web/DemoWebApiController.java b/base-manager/src/main/java/com/mortals/xhx/busiz/web/DemoWebApiController.java
index 8c1ad7016b857d0d3fa559c3b7a06cf2359efc33..432aab5c72a6f3d06c3c7f35bb60d31070bf9cc9 100644
--- a/base-manager/src/main/java/com/mortals/xhx/busiz/web/DemoWebApiController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/busiz/web/DemoWebApiController.java
@@ -9,6 +9,10 @@ import com.mortals.framework.model.PageInfo;
 import com.mortals.framework.model.ParamDto;
 import com.mortals.framework.model.Result;
 import com.mortals.xhx.common.code.SourceEnum;
+import com.mortals.xhx.module.app.model.AppDatasetEntity;
+import com.mortals.xhx.module.app.model.AppDatasetQuery;
+import com.mortals.xhx.module.app.service.AppDatasetService;
+import com.mortals.xhx.module.app.service.AppInfoFieldService;
 import com.mortals.xhx.module.business.model.BusinessMatterEntity;
 import com.mortals.xhx.module.business.model.BusinessMatterQuery;
 import com.mortals.xhx.module.business.service.BusinessMatterService;
@@ -41,10 +45,7 @@ import org.apache.http.util.EntityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.ObjectUtils;
 import org.springframework.util.StopWatch;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -74,13 +75,13 @@ public class DemoWebApiController {
     @Autowired
     private MatterService matterService;
     @Autowired
-    private SiteThemeService siteThemeService;
-    @Autowired
     private SiteThemeMatterService siteThemeMatterService;
     @Autowired
     private BusinessMatterService businessMatterService;
-
-
+    @Autowired
+    private AppDatasetService appDatasetService;
+    @Autowired
+    private AppInfoFieldService appInfoFieldService;
 
 
     @PostMapping(value = "testGov")
@@ -327,7 +328,7 @@ public class DemoWebApiController {
     public Rest<String> limit() {
         log.info("limit in");
         try {
-            String tableName="mortals_sys_area";
+            String tableName = "mortals_sys_area";
             //CacheDataUtil.getInstance().getBaseData()
 
             return Rest.ok();
@@ -338,6 +339,33 @@ public class DemoWebApiController {
     }
 
 
+    @GetMapping(value = "genApp")
+    @UnAuth
+    public Rest<String> genApp() {
+        try {
+
+            AppDatasetQuery appDatasetQuery = new AppDatasetQuery();
+            appDatasetQuery.setAppId(304L);
+            List<AppDatasetEntity> appDatasetEntities = appDatasetService.find(appDatasetQuery);
+            StringBuilder sb = new StringBuilder();
+            for (AppDatasetEntity appDatasetEntity : appDatasetEntities) {
+
+
+                sb.append(String.format("INSERT INTO `mortals_sys_app_info_field`(`id`, `datasetId`, `fieldCode`, `fieldName`, `fieldType`, `fieldTypeValue`, `dataType`, `fieldValue`, `defaultValue`, `fieldLen`, `fieldNull`, `isList`, `fieldOrderNo`, `remark`, `createTime`, `createUserId`, `updateTime`, `updateUserId`, `serviceApi`, `serviceApiParams`) VALUES (null, %s, 'name', '鏀跨瓥鍏ㄧО', 'input', '', 'string', '', '', 128, 0, 1, 99, '', '2024-05-29 17:55:38', 1, '2024-05-29 17:55:38', 1, '', '');", appDatasetEntity.getId()));
+                sb.append("\n");
+            }
+            log.info("sql:{}",sb.toString());
+
+            //INSERT INTO `mortals_sys_app_info_field`(`id`, `datasetId`, `fieldCode`, `fieldName`, `fieldType`, `fieldTypeValue`, `dataType`, `fieldValue`, `defaultValue`, `fieldLen`, `fieldNull`, `isList`, `fieldOrderNo`, `remark`, `createTime`, `createUserId`, `updateTime`, `updateUserId`, `serviceApi`, `serviceApiParams`) VALUES (null, 755, 'name', '鏀跨瓥鍏ㄧО', 'input', '', 'string', '', '', 128, 0, 1, 99, '', '2024-05-29 17:55:38', 1, '2024-05-29 17:55:38', 1, '', '');
+
+            return Rest.ok();
+        } catch (Exception e) {
+            log.error("寮傚父锛�", e.getMessage());
+            return Rest.fail(e.getMessage());
+        }
+    }
+
+
     public static void main(String[] args) {
         System.out.println(1001 / 500);
 
diff --git a/base-manager/src/main/java/com/mortals/xhx/common/code/DimensionTypeEnum.java b/base-manager/src/main/java/com/mortals/xhx/common/code/DimensionTypeEnum.java
new file mode 100644
index 0000000000000000000000000000000000000000..3596b16ceef67f82bd47e919d3edb84d25e87d7c
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/common/code/DimensionTypeEnum.java
@@ -0,0 +1,65 @@
+package com.mortals.xhx.common.code;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+* 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)鏋氫妇绫�
+*
+* @author zxfei
+*/
+public enum DimensionTypeEnum {
+    鍥哄畾鍊�(1, "鍥哄畾鍊�"),
+    绯荤粺涓婁笅闂彉閲�(2, "绯荤粺涓婁笅闂彉閲�");
+    private Integer value;
+    private String desc;
+
+    DimensionTypeEnum(Integer value, String desc) {
+        this.value = value;
+        this.desc = desc;
+    }
+
+    public Integer getValue() {
+        return this.value;
+    }
+
+    public String getDesc() {
+        return this.desc;
+    }
+
+    public static DimensionTypeEnum getByValue(Integer value) {
+        for (DimensionTypeEnum dimensionTypeEnum : DimensionTypeEnum.values()) {
+            if (dimensionTypeEnum.getValue() == value) {
+                return dimensionTypeEnum;
+            }
+        }
+        return null;
+    }
+
+    /**
+    * 鑾峰彇Map闆嗗悎
+    *
+    * @param eItem 涓嶅寘鍚」
+    * @return
+    */
+    public static Map<String, String> getEnumMap(Integer... eItem) {
+        Map<String, String> resultMap = new LinkedHashMap<>();
+        for (DimensionTypeEnum item : DimensionTypeEnum.values()) {
+            try {
+                boolean hasE = false;
+                for (Integer e : eItem) {
+                    if (item.getValue() == e) {
+                        hasE = true;
+                        break;
+                    }
+                }
+                if (!hasE) {
+                    resultMap.put(item.getValue() + "", item.getDesc());
+                }
+            } catch (Exception ex) {
+
+            }
+        }
+        return resultMap;
+    }
+}
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/common/code/RuleConditionEnum.java b/base-manager/src/main/java/com/mortals/xhx/common/code/RuleConditionEnum.java
new file mode 100644
index 0000000000000000000000000000000000000000..5527e38733788c9288a2e0a3aff20b6fba79a567
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/common/code/RuleConditionEnum.java
@@ -0,0 +1,72 @@
+package com.mortals.xhx.common.code;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+* 瑙勫垯鏉′欢(IN.灞炰簬,<.灏忎簬,>.澶т簬,=.绛変簬,!=.涓嶇瓑浜�,>=.澶т簬绛変簬,<=.灏忎簬绛変簬,like %.宸︽ā绯�,like %.鍙虫ā绯�)鏋氫妇绫�
+*
+* @author zxfei
+*/
+public enum RuleConditionEnum {
+    灞炰簬("IN", "灞炰簬"),
+    灏忎簬("<", "灏忎簬"),
+    澶т簬(">", "澶т簬"),
+    绛変簬("=", "绛変簬"),
+    涓嶇瓑浜�("!=", "涓嶇瓑浜�"),
+    澶т簬绛変簬(">=", "澶т簬绛変簬"),
+    灏忎簬绛変簬("<=", "灏忎簬绛変簬"),
+    宸︽ā绯�("like %", "宸︽ā绯�"),
+    鍙虫ā绯�("like %", "鍙虫ā绯�");
+    private String value;
+    private String desc;
+
+    RuleConditionEnum(String value, String desc) {
+        this.value = value;
+        this.desc = desc;
+    }
+
+    public String getValue() {
+        return this.value;
+    }
+
+    public String getDesc() {
+        return this.desc;
+    }
+
+    public static RuleConditionEnum getByValue(String value) {
+        for (RuleConditionEnum ruleConditionEnum : RuleConditionEnum.values()) {
+            if (ruleConditionEnum.getValue() == value) {
+                return ruleConditionEnum;
+            }
+        }
+        return null;
+    }
+
+    /**
+    * 鑾峰彇Map闆嗗悎
+    *
+    * @param eItem 涓嶅寘鍚」
+    * @return
+    */
+    public static Map<String, String> getEnumMap(String... eItem) {
+        Map<String, String> resultMap = new LinkedHashMap<>();
+        for (RuleConditionEnum item : RuleConditionEnum.values()) {
+            try {
+                boolean hasE = false;
+                for (String e : eItem) {
+                    if (item.getValue() == e) {
+                        hasE = true;
+                        break;
+                    }
+                }
+                if (!hasE) {
+                    resultMap.put(item.getValue() + "", item.getDesc());
+                }
+            } catch (Exception ex) {
+
+            }
+        }
+        return resultMap;
+    }
+}
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/common/code/RuleTypeEnum.java b/base-manager/src/main/java/com/mortals/xhx/common/code/RuleTypeEnum.java
new file mode 100644
index 0000000000000000000000000000000000000000..569857e5a862768229a839c285eb7ee17626da91
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/common/code/RuleTypeEnum.java
@@ -0,0 +1,65 @@
+package com.mortals.xhx.common.code;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+* 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)鏋氫妇绫�
+*
+* @author zxfei
+*/
+public enum RuleTypeEnum {
+    鍥哄畾鍊�(1, "鍥哄畾鍊�"),
+    绯荤粺涓婁笅闂彉閲�(2, "绯荤粺涓婁笅闂彉閲�");
+    private Integer value;
+    private String desc;
+
+    RuleTypeEnum(Integer value, String desc) {
+        this.value = value;
+        this.desc = desc;
+    }
+
+    public Integer getValue() {
+        return this.value;
+    }
+
+    public String getDesc() {
+        return this.desc;
+    }
+
+    public static RuleTypeEnum getByValue(Integer value) {
+        for (RuleTypeEnum ruleTypeEnum : RuleTypeEnum.values()) {
+            if (ruleTypeEnum.getValue() == value) {
+                return ruleTypeEnum;
+            }
+        }
+        return null;
+    }
+
+    /**
+    * 鑾峰彇Map闆嗗悎
+    *
+    * @param eItem 涓嶅寘鍚」
+    * @return
+    */
+    public static Map<String, String> getEnumMap(Integer... eItem) {
+        Map<String, String> resultMap = new LinkedHashMap<>();
+        for (RuleTypeEnum item : RuleTypeEnum.values()) {
+            try {
+                boolean hasE = false;
+                for (Integer e : eItem) {
+                    if (item.getValue() == e) {
+                        hasE = true;
+                        break;
+                    }
+                }
+                if (!hasE) {
+                    resultMap.put(item.getValue() + "", item.getDesc());
+                }
+            } catch (Exception ex) {
+
+            }
+        }
+        return resultMap;
+    }
+}
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/common/utils/DataPermissionUtils.java b/base-manager/src/main/java/com/mortals/xhx/common/utils/DataPermissionUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..03d09a10bde1bb47d326f9dd8b1269f89386241e
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/common/utils/DataPermissionUtils.java
@@ -0,0 +1,62 @@
+package com.mortals.xhx.common.utils;
+
+import com.mortals.framework.service.IUser;
+import com.mortals.xhx.module.dimension.model.DimensionResourceRuleEntity;
+import org.apache.commons.compress.utils.Lists;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+public class DataPermissionUtils {
+
+    public static final String COMPONENT_DATA_RULES = "COMPONENT_DATA_RULES";
+
+    public static final String SYS_USER_INFO = "SYS_USER_INFO";
+
+
+
+    /**
+     * 寰€閾炬帴璇锋眰閲岄潰锛屼紶鍏ユ暟鎹煡璇㈡潯浠�
+     *
+     * @param request
+     * @param componentRules
+     */
+    public static void installDataSearchConditon(HttpServletRequest request, List<DimensionResourceRuleEntity> componentRules) {
+        // 1.鍏堜粠request鑾峰彇MENU_DATA_AUTHOR_RULES锛屽鏋滃瓨鍒欒幏鍙栧埌LIST
+        List<DimensionResourceRuleEntity> list = loadDataSearchCondition(request);
+        if (list == null) {
+            // 2.濡傛灉涓嶅瓨鍦紝鍒檔ew涓€涓猯ist
+            list = Lists.newArrayList();
+        }
+        list.addAll(componentRules);
+        // 3.寰€list閲岄潰澧為噺瀛樻寚
+        request.setAttribute(COMPONENT_DATA_RULES, list);
+    }
+
+
+    /**
+     * 寰€閾炬帴璇锋眰閲岄潰锛屼紶鍏ユ暟鎹煡璇㈡潯浠�
+     *
+     * @param request
+     * @param searchSql
+     */
+    public static void installSearchSql(HttpServletRequest request,String searchSql) {
+        // 1.鍏堜粠request鑾峰彇MENU_DATA_AUTHOR_RULES锛屽鏋滃瓨鍒欒幏鍙栧埌LIST
+
+        // 3.寰€list閲岄潰澧為噺瀛樻寚
+     //   request.setAttribute(DATA_PERMISSION_SEARCH_SQL, searchSql);
+    }
+
+
+    /**
+     * 鑾峰彇璇锋眰瀵瑰簲鐨勬暟鎹潈闄愯鍒�
+     */
+    @SuppressWarnings("unchecked")
+    public static synchronized List<DimensionResourceRuleEntity> loadDataSearchCondition(HttpServletRequest request) {
+        return (List<DimensionResourceRuleEntity>) request.getAttribute(COMPONENT_DATA_RULES);
+    }
+
+    public static synchronized void installUserInfo(HttpServletRequest request, IUser userinfo) {
+        request.setAttribute(SYS_USER_INFO, userinfo);
+    }
+}
diff --git a/base-manager/src/main/java/com/mortals/xhx/common/utils/MatterDetailHtmlParseUtil.java b/base-manager/src/main/java/com/mortals/xhx/common/utils/MatterDetailHtmlParseUtil.java
index d4012bd21f94e843daef69b40fa48ace9f721f42..1005353d8c93a12b6996716b6a557155828c469c 100644
--- a/base-manager/src/main/java/com/mortals/xhx/common/utils/MatterDetailHtmlParseUtil.java
+++ b/base-manager/src/main/java/com/mortals/xhx/common/utils/MatterDetailHtmlParseUtil.java
@@ -111,7 +111,7 @@ public class MatterDetailHtmlParseUtil {
 
                         List<String> allGroup = ReUtil.findAllGroup1("'(.*?)'", onclickStr);
                         if (!ObjectUtils.isEmpty(allGroup)) {
-                            String encryUrl = "http://www.sczwfw.gov.cn/jiq/interface/item/annex/encryptUrl?id=" + allGroup.get(0);
+       /*                     String encryUrl = "http://www.sczwfw.gov.cn/jiq/interface/item/annex/encryptUrl?id=" + allGroup.get(0);
 
                             String resp = HttpUtil.get(encryUrl);
                             JSONObject obj = JSON.parseObject(resp);
@@ -120,7 +120,8 @@ public class MatterDetailHtmlParseUtil {
                             if ("0".equals(code)) {
                                 fileEntity.setFileUrl(data);
                                 fileEntity.setLocalFileUrl(data);
-                            }
+                            }*/
+                            fileEntity.setFileUrl(allGroup.get(0));
                         }
 
                         // fileEntity.setFileUrl(node.firstChild().attr("href").trim());
@@ -150,7 +151,7 @@ public class MatterDetailHtmlParseUtil {
 
                         List<String> allGroup = ReUtil.findAllGroup1("'(.*?)'", onclickStr);
                         if (!ObjectUtils.isEmpty(allGroup)) {
-                            String encryUrl = "http://www.sczwfw.gov.cn/jiq/interface/item/annex/encryptUrl?id=" + allGroup.get(0);
+/*                            String encryUrl = "http://www.sczwfw.gov.cn/jiq/interface/item/annex/encryptUrl?id=" + allGroup.get(0);
 
                             String resp = HttpUtil.get(encryUrl);
                             JSONObject obj = JSON.parseObject(resp);
@@ -159,7 +160,8 @@ public class MatterDetailHtmlParseUtil {
                             if ("0".equals(code)) {
                                 fileEntity.setFileUrl(data);
                                 fileEntity.setLocalFileUrl(data);
-                            }
+                            }*/
+                            fileEntity.setFileUrl(allGroup.get(0));
                         }
                         // fileEntity.setFileUrl(node.firstChild().attr("href").trim());
                         datumSampleFileEntities.add(fileEntity);
diff --git a/base-manager/src/main/java/com/mortals/xhx/common/utils/RuleQueryGenerator.java b/base-manager/src/main/java/com/mortals/xhx/common/utils/RuleQueryGenerator.java
new file mode 100644
index 0000000000000000000000000000000000000000..28c13e95b6744dc91e6c0cb21f495478554c17a7
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/common/utils/RuleQueryGenerator.java
@@ -0,0 +1,257 @@
+package com.mortals.xhx.common.utils;
+
+import cn.hutool.core.util.ReflectUtil;
+import com.google.common.collect.Maps;
+import com.mortals.framework.service.IUser;
+import com.mortals.framework.util.StringUtils;
+import com.mortals.xhx.common.code.RuleConditionEnum;
+import com.mortals.xhx.common.code.RuleTypeEnum;
+import com.mortals.xhx.module.dimension.model.DimensionResourceRuleEntity;
+import lombok.experimental.UtilityClass;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.util.ObjectUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 鏉冮檺sql 鏌ヨ璇彞瀹炵幇
+ *
+ * @author: zxfei
+ * @date: 2024/5/15 10:44
+ */
+@Slf4j
+@UtilityClass
+public class RuleQueryGenerator {
+
+    private static final String SQL_AND = " and ";
+
+    private static final String SQL_OR = " or ";
+
+    private static final String SQL_JOINT = " (%s) ";
+
+
+    public static String getPermissionSql(List<DimensionResourceRuleEntity> conditionList, IUser loginUser) {
+        //瀛樺湪鏉冮檺
+        //瀵瑰綋鍓嶈韩浠芥牴鎹鍒欑紪鐮佸垎缁�-鍘婚櫎涓嶅悓瑙掕壊涓浉鍚岀紪鐮佷笖瑙勫垯鍊间负ALL鐨勮鍒� 骞舵牴鎹鑹瞚d鍒嗙粍
+        Map<Long, List<DimensionResourceRuleEntity>> ruleMap = getRuleMapByRoleId(conditionList);
+
+        StringBuilder sb = new StringBuilder();
+        String roleSql;
+        if (MapUtils.isNotEmpty(ruleMap)) {
+            //鎸夎鑹叉嫾鎺QL
+            for (Map.Entry<Long, List<DimensionResourceRuleEntity>> entry : ruleMap.entrySet()) {
+                List<DimensionResourceRuleEntity> lists = entry.getValue();
+                // 鍚岃鑹蹭箣闂翠娇鐢� AND
+                roleSql = buildRoleSql(lists, loginUser);
+                //瑙掕壊涔嬮棿浣跨敤 OR
+                if (StringUtils.isNotEmpty(roleSql)) {
+                    jointSqlByRoles(sb, roleSql);
+                }
+            }
+
+        }
+        return sb.toString();
+    }
+
+
+    /**
+     * 鑾峰彇甯︽湁鏁版嵁鏉冮檺鐨凷QL
+     *
+     * @param identityId 韬唤ID
+     */
+    public String getPermissionSql(String identityId) {
+        //------------------------鑾峰彇褰撳墠韬唤鐨勬暟鎹鍒�------------------------------------
+        List<DimensionResourceRuleEntity> conditionList = getCurrentIdentyPermission(identityId);
+        if (ObjectUtils.isEmpty(conditionList)) {
+            //娌℃湁鏉冮檺
+            return "1 = 0";
+        }
+        //瀛樺湪鏉冮檺
+        //瀵瑰綋鍓嶈韩浠芥牴鎹鍒欑紪鐮佸垎缁�-鍘婚櫎涓嶅悓瑙掕壊涓浉鍚岀紪鐮佷笖瑙勫垯鍊间负ALL鐨勮鍒� 骞舵牴鎹鑹瞚d鍒嗙粍
+        Map<Long, List<DimensionResourceRuleEntity>> ruleMap = getRuleMapByRoleId(conditionList);
+
+        StringBuilder sb = new StringBuilder();
+        String roleSql;
+        if (MapUtils.isNotEmpty(ruleMap)) {
+            //鎸夎鑹叉嫾鎺QL
+            for (Map.Entry<Long, List<DimensionResourceRuleEntity>> entry : ruleMap.entrySet()) {
+
+                List<DimensionResourceRuleEntity> lists = entry.getValue();
+
+                // 鍚岃鑹蹭箣闂翠娇鐢� AND
+                roleSql = buildRoleSql(lists, null);
+
+                //瑙掕壊涔嬮棿浣跨敤 OR
+                if (StringUtils.isNotEmpty(roleSql)) {
+                    jointSqlByRoles(sb, roleSql);
+                }
+            }
+
+        }
+        return sb.toString();
+    }
+
+    private static List<DimensionResourceRuleEntity> getCurrentIdentyPermission(String identityId) {
+        return null;
+
+/*        //----------------------------鑾峰彇鎵€鏈夋暟鎹鍒�-----------------------------
+        List<DimensionResourceRuleEntity> roleRuleList = DataPermissionUtils.loadDataSearchCondition();
+        if(ObjectUtils.isEmpty(roleRuleList)){
+            return null;
+        }
+        //-----------------------------杩囨护鎺変笉灞炰簬褰撳墠韬唤鐨勮鍒�-----------------------------------
+        return roleRuleList.stream()
+               // .filter(item -> item.getIdentityId().equals(identityId))
+                .collect(Collectors.toList());*/
+    }
+
+    /**
+     * 鏋勫缓鍗曡鑹睸QL
+     */
+    private static String buildRoleSql(List<DimensionResourceRuleEntity> lists, IUser loginUser) {
+        StringBuilder roleSql = new StringBuilder();
+        for (DimensionResourceRuleEntity item : lists) {
+            //濡傛灉鍑虹幇鍏ㄩ€� 鍒� 浠h〃鍏ㄩ儴锛屼笉闇€瑕侀檺瀹氳寖鍥�
+            if ("ALL".equals(item.getRuleValue())) {
+                continue;
+            }
+            //灏嗚鍒欒浆鎹㈡垚SQL
+            String filedSql = convertRuleToSql(item, loginUser);
+
+            if(!ObjectUtils.isEmpty(filedSql)){
+                roleSql.append(SQL_AND).append(filedSql);
+            }
+
+        }
+        return roleSql.toString();
+    }
+
+
+    /**
+     * 灏嗗崟涓€瑙勫垯杞寲鎴怱QL锛岄粯璁ゅ叏閮ㄤ娇鐢� In
+     * ruleCode : area_test
+     * ruleValue : 鍖哄煙1锛屽尯鍩�2锛屽尯鍩�3
+     *
+     * @param rule 瑙勫垯鍊�
+     */
+    private static String convertRuleToSql(DimensionResourceRuleEntity rule, IUser loginUser) {
+
+        //鍒ゆ柇瑙勫垯绫诲瀷
+        String ruleValueConvert = "";
+        if (RuleConditionEnum.灞炰簬.getValue().equalsIgnoreCase(rule.getRuleCondition())) {
+            String whereCondition = " in ";
+            if(RuleTypeEnum.绯荤粺涓婁笅闂彉閲�.getValue()==rule.getRuleType()){
+                ruleValueConvert = getInConditionValue(rule.getRuleValue(),loginUser);
+                if(ObjectUtils.isEmpty(ruleValueConvert)) return null;
+                return rule.getRuleCode() + whereCondition + ruleValueConvert;
+            }else{
+                ruleValueConvert = getInConditionValue(rule.getRuleValue());
+                if(ObjectUtils.isEmpty(ruleValueConvert)) return null;
+                return rule.getRuleCode() + whereCondition + ruleValueConvert;
+            }
+        } else if (RuleConditionEnum.澶т簬.getValue().equalsIgnoreCase(rule.getRuleCondition())) {
+            String whereCondition = " > ";
+            ruleValueConvert = getGreaterConditionValue(rule.getRuleValue());
+            return rule.getRuleCode() + whereCondition + ruleValueConvert;
+        } else {
+            //todo
+            //涓嶆敮鎸佺殑绫诲瀷
+        }
+        return null;
+
+    }
+
+
+    /**
+     * IN瀛楃涓茶浆鎹�
+     * 鍖哄煙1, 鍖哄煙2, 鍖哄煙3  --> ("鍖哄煙1","鍖哄煙2","鍖哄煙3")
+     * 姹熻タ澶у尯  --> ("姹熻タ澶у尯")
+     */
+    private static String getInConditionValue(String ruleValue) {
+        String[] temp = ruleValue.split(",");
+        StringBuilder res = new StringBuilder();
+        for (String string : temp) {
+            res.append(",'").append(string).append("'");
+        }
+        return "(" + res.substring(1) + ")";
+    }
+
+    /**
+     * IN瀛楃涓茶浆鎹�
+     * 鍖哄煙1, 鍖哄煙2, 鍖哄煙3  --> ("鍖哄煙1","鍖哄煙2","鍖哄煙3")
+     * 姹熻タ澶у尯  --> ("姹熻タ澶у尯")
+     */
+    private static String getInConditionValue(String ruleValue,IUser loginUser) {
+        //el琛ㄨ揪寮� 鎻愬彇鍙橀噺  鍐嶉€氳繃鍙嶅皠鑾峰彇鍊硷紝鏈€缁堣缃€�
+        Object fieldValue = ReflectUtil.getFieldValue(loginUser, ruleValue);
+        if(fieldValue!=null){
+            return "(" + fieldValue + ")";
+        }
+        return null;
+
+    }
+
+    /**
+     * > 瀛楃涓茶浆鎹�
+     * 鍖哄煙1, 鍖哄煙2, 鍖哄煙3  --> ("鍖哄煙1","鍖哄煙2","鍖哄煙3")
+     * 姹熻タ澶у尯  --> ("姹熻タ澶у尯")
+     */
+    private static String getGreaterConditionValue(String ruleValue) {
+        return ruleValue;
+    }
+
+    /**
+     * 鎷兼帴鍗曡鑹茬殑SQL
+     *
+     * @param sqlBuilder 鎬荤殑SQL
+     * @param roleSql    鍗曡鑹睸QL
+     */
+    private static void jointSqlByRoles(StringBuilder sqlBuilder, String roleSql) {
+        roleSql = roleSql.replaceFirst(SQL_AND, "");
+        if (StringUtils.isEmpty(sqlBuilder.toString())) {
+            sqlBuilder.append(String.format(SQL_JOINT, roleSql));
+        } else {
+            sqlBuilder.append(SQL_OR).append(String.format(SQL_JOINT, roleSql));
+        }
+    }
+
+    /**
+     * 1. 瀵瑰綋鍓嶈韩浠芥牴鎹鍒欑紪鐮佸垎缁�-鍘婚櫎涓嶅悓瑙掕壊涓浉鍚岀紪鐮佷笖瑙勫垯鍊间负ALL鐨勮鍒�
+     * 2. 瀵硅鑹茶繘琛屽垎缁�
+     *
+     * @param conditionList 鏁版嵁瑙勫垯
+     * @return 鍒嗙粍鍚庣殑瑙勫垯list
+     */
+    public static Map<Long, List<DimensionResourceRuleEntity>> getRuleMapByRoleId(List<DimensionResourceRuleEntity> conditionList) {
+        //--------杩囨护鎺変笉灞炰簬褰撳墠韬唤鐨勮鍒�,骞跺鏉′欢缂栫爜杩涜鍒嗙粍-----------------------------------
+        Map<String, List<DimensionResourceRuleEntity>> conditionMap = conditionList.stream().collect(Collectors.groupingBy(DimensionResourceRuleEntity::getRuleCode));
+
+        //--------鐩稿悓缂栫爜鍒嗙粍涓瓨鍦ˋLL鐨勬帓闄ゆ帀-----------------------------------------------
+        List<DimensionResourceRuleEntity> newRoleRuleList = new ArrayList<>();
+        if (MapUtils.isNotEmpty(conditionMap)) {
+            for (Map.Entry<String, List<DimensionResourceRuleEntity>> entry : conditionMap.entrySet()) {
+                boolean flag = true;
+                List<DimensionResourceRuleEntity> lists = entry.getValue();
+                for (DimensionResourceRuleEntity item : lists) {
+                    if ("ALL".equals(item.getRuleValue())) {
+                        flag = false;
+                        break;
+                    }
+                }
+
+                if (flag) {
+                    newRoleRuleList.addAll(lists);
+                }
+            }
+        }
+        if (CollectionUtils.isNotEmpty(newRoleRuleList)) {
+            return newRoleRuleList.stream().collect(Collectors.groupingBy(DimensionResourceRuleEntity::getRoleId));
+        }
+        return Maps.newHashMap();
+    }
+}
diff --git a/base-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DemoStartService.java b/base-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DemoStartService.java
index 452a9fa4541180c0562be996d3abf04a7ea2faee..2e6a8c186b54acceb1ece970457d7ae1ceb2159e 100644
--- a/base-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DemoStartService.java
+++ b/base-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DemoStartService.java
@@ -1,60 +1,19 @@
 package com.mortals.xhx.daemon.applicationservice;
 
-import com.mortals.framework.common.Rest;
-import com.mortals.framework.service.ICacheService;
-import com.mortals.framework.util.ThreadPool;
-import com.mortals.xhx.base.system.user.service.UserService;
-import com.mortals.xhx.common.code.YesNoEnum;
-import com.mortals.xhx.common.key.Constant;
-import com.mortals.xhx.common.key.RedisKey;
-import com.mortals.xhx.common.pdu.RespData;
-import com.mortals.xhx.common.pdu.user.UserPdu;
-import com.mortals.xhx.common.utils.SendTaskThreadPool;
-import com.mortals.xhx.feign.user.IUserFeign;
+import com.mortals.framework.springcloud.service.IApplicationService;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.checkerframework.checker.units.qual.A;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import com.mortals.framework.springcloud.service.IApplicationService;
-import org.springframework.util.ObjectUtils;
-
-import java.util.List;
 
-
-@Component
+//@Component
 public class DemoStartService implements IApplicationService {
 
     private static Log logger = LogFactory.getLog(DemoStartService.class);
 
-    @Autowired
-    private ICacheService cacheService;
-    @Autowired
-    private IUserFeign userFeign;
-    @Autowired
-    private UserService userService;
-
     @Override
     public void start() {
-      //  ThreadPool.getInstance().init(10);
         logger.info("寮€濮嬫湇鍔�..[閰嶇疆宸插姞杞藉畬鎴愶紝浣嗛儴鍒嗘鏋惰繕鏈垵濮嬪寲锛屾瘮濡傦細Kafka]");
-
-/*        Rest<String> rest = userFeign.synchSiteAuth();
-        if (rest.getCode().equals(YesNoEnum.YES.getValue())) {
-            UserPdu userPdu = new UserPdu();
-            userPdu.setPage(1);
-            userPdu.setSize(-1);
-            Rest<RespData<List<UserPdu>>> list = userFeign.list(userPdu);
-
-            if(!ObjectUtils.isEmpty(list.getData().getData())){
-                //鍒濆鍖栨洿鏂伴棬鎴风敤鎴风珯鐐规爲
-                cacheService.del(Constant.USER_SITE_TREE);
-                userService.updateUserList(list.getData().getData());
-            }
-
-        }*/
-
     }
 
     @Override
diff --git a/base-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DemoStartedService.java b/base-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DemoStartedService.java
index 762143493fe9b266ef7f080814f3243a74075cda..ea161da8951429bc3bc117f097d3a62527fd2d98 100644
--- a/base-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DemoStartedService.java
+++ b/base-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DemoStartedService.java
@@ -1,45 +1,23 @@
 package com.mortals.xhx.daemon.applicationservice;
 
-import com.mortals.framework.exception.AppException;
-import com.mortals.framework.model.Context;
 import com.mortals.framework.service.ICacheService;
-import com.mortals.framework.service.IUser;
-import com.mortals.framework.springcloud.config.web.BaseWebMvcConfigurer;
+import com.mortals.framework.springcloud.service.IApplicationStartedService;
 import com.mortals.framework.util.ThreadPool;
-import com.mortals.xhx.base.system.user.model.UserEntity;
-import com.mortals.xhx.base.system.user.model.UserQuery;
 import com.mortals.xhx.base.system.user.service.UserService;
-import com.mortals.xhx.common.pdu.user.UserPdu;
-import com.mortals.xhx.common.utils.BeanUtil;
-import com.mortals.xhx.common.utils.SyncTreeSiteThread;
 import com.mortals.xhx.feign.user.IUserFeign;
-import com.mortals.xhx.module.site.model.SiteEntity;
-import com.mortals.xhx.module.site.model.SiteTreeSelect;
 import com.mortals.xhx.module.site.service.SiteService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.stereotype.Component;
 
-import com.mortals.framework.springcloud.service.IApplicationStartedService;
-import org.springframework.util.ObjectUtils;
-
-import java.util.List;
-
 import static com.mortals.xhx.common.key.Constant.USER_SITE_TREE;
 
 @Component
 @Slf4j
 public class DemoStartedService implements IApplicationStartedService {
 
-    private static Log logger = LogFactory.getLog(DemoStartedService.class);
-    @Autowired
-    private IUserFeign userFeign;
-    @Autowired
-    private UserService userService;
     @Autowired
     private ICacheService cacheService;
     @Autowired
@@ -47,54 +25,16 @@ public class DemoStartedService implements IApplicationStartedService {
 
     @Override
     public void start() {
-        ThreadPool.getInstance().init(6);
-        logger.info("寮€濮嬫湇鍔�..[鍒濆鍖栫敤鎴风珯鐐规爲]");
+        ThreadPool.getInstance().init(10);
+        log.info("寮€濮嬫湇鍔�..[鍒濆鍖栫敤鎴风珯鐐规爲]");
         //鍒犻櫎redis 涓殑 绔欑偣鏍�
         cacheService.del(USER_SITE_TREE);
-
         siteService.updateAllSiteTree(null);
-
-
-        //娴嬭瘯鑾峰彇绔欑偣
-/*
-        int i=0;
-        while (true) {
-            SiteEntity siteCache = siteService.getCache("1");
-            if (ObjectUtils.isEmpty(siteCache)) {
-                log.error("siteCache is null");
-            }else {
-                log.info("count==>"+i);
-            }
-            try {
-                Thread.sleep(50);
-                i++;
-            } catch (InterruptedException e) {
-
-            }
-
-        }*/
-
-     /*   UserEntity userEntity = new UserEntity();
-        userEntity.initAttrValue();
-        userEntity.setId(0L);
-        Context contextTemp = new Context();
-        contextTemp.setUser(userEntity);
-        SyncTreeSiteThread syncTreeSiteThread = new SyncTreeSiteThread(contextTemp);
-        ThreadPool.getInstance().execute(syncTreeSiteThread);
-
-        userEntity = new UserEntity();
-        userEntity.initAttrValue();
-        userEntity.setId(1L);
-         contextTemp = new Context();
-        contextTemp.setUser(userEntity);
-         syncTreeSiteThread = new SyncTreeSiteThread(contextTemp);
-        ThreadPool.getInstance().execute(syncTreeSiteThread);*/
-
     }
 
     @Override
     public void stop() {
-        logger.info("鍋滄鏈嶅姟..");
+        log.info("鍋滄鏈嶅姟..");
     }
 
     @Override
diff --git a/base-manager/src/main/java/com/mortals/xhx/daemon/task/SyncMatterTaskImpl.java b/base-manager/src/main/java/com/mortals/xhx/daemon/task/SyncMatterTaskImpl.java
index 76c8bce5e5a2ddd37bab8baaa0feab1601b2dd03..caac75063b5629bcf8443a2c9952b1eb69dd97ed 100644
--- a/base-manager/src/main/java/com/mortals/xhx/daemon/task/SyncMatterTaskImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/daemon/task/SyncMatterTaskImpl.java
@@ -50,6 +50,11 @@ public class SyncMatterTaskImpl implements ITaskExcuteService {
                 stopWatch.stop();
                 log.info("鍚屾绔欑偣閮ㄩ棬瀹屾垚,鑰楁椂锛歿}s", stopWatch.getLastTaskTimeMillis() / 1000);
                 log.info("寮€濮嬪悓姝ヤ簨椤�==銆媨}", siteEntity.getSiteName());
+                stopWatch.start("鍚屾鍒犻櫎鏈湴澶氫綑鐨勬斂鍔′簨椤�");
+                log.info("鍚屾鍒犻櫎鏈湴澶氫綑鐨勬斂鍔′簨椤�");
+                matterExtService.syncDelMatterBySiteId(siteEntity, null);
+                stopWatch.stop();
+                log.info("鍚屾鍒犻櫎鏈湴澶氫綑鐨勬斂鍔′簨椤瑰畬鎴�,鑰楁椂锛歿}s", stopWatch.getLastTaskTimeMillis() / 1000);
 
                 stopWatch.start("寮€濮嬪悓姝ヤ簨椤规柟娉�");
                 matterExtService.syncMatterBySiteId(siteEntity, null);
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/area/service/impl/AreaServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/area/service/impl/AreaServiceImpl.java
index f9e88edd8880593da69b3c1bc905dcf3ffc6dee3..efd37b3ebc7a44c7933c8cb2d7f699c16b2f0113 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/area/service/impl/AreaServiceImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/area/service/impl/AreaServiceImpl.java
@@ -30,11 +30,6 @@ import java.util.stream.Collectors;
 @Service("areaService")
 public class AreaServiceImpl extends AbstractCRUDCacheServiceImpl<AreaDao, AreaEntity, Long> implements AreaService {
 
-    @Autowired
-    private SiteService siteService;
-    @Autowired
-    private BaseAreaService baseAreaService;
-
 
     @Override
     public void putCache(String key, AreaEntity data) {
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dept/dao/DeptDao.java b/base-manager/src/main/java/com/mortals/xhx/module/dept/dao/DeptDao.java
index 23a4ca7100b01e329a9cb07357bd23f4cf3bc4a3..5a6d68a5a577f7238cbf2defd3f3648b46b7e62a 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/dept/dao/DeptDao.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dept/dao/DeptDao.java
@@ -1,6 +1,7 @@
 package com.mortals.xhx.module.dept.dao;
 
 import com.mortals.framework.dao.ICRUDDao;
+import com.mortals.framework.model.Context;
 import com.mortals.framework.model.PageInfo;
 import com.mortals.framework.model.Result;
 import com.mortals.xhx.module.dept.model.DeptEntity;
@@ -20,9 +21,12 @@ public interface  DeptDao extends ICRUDDao<DeptEntity,Long>{
 
     String GET_DEPT_LIST_BY_BUSINESS = "getDeptListByBusiness";
     String GET_BUSINESS_BY_DEPT = "getBusinessByDept";
+    String GET_DEPTLIST_BY_EXISTBUSINESS = "getDeptListByExistBusiness";
 
     List<DeptVo> getDeptListByBusiness(DeptQuery deptQuery);
 
     List<DeptVo> getBusinessByDept(DeptQuery deptQuery);
 
+    List<DeptEntity> getDeptListByExistBusiness(DeptQuery deptQuery);
+
 }
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dept/dao/ibatis/DeptDaoImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/dept/dao/ibatis/DeptDaoImpl.java
index 284a31a32a6238c64d7e2834a0e173bafb5854a0..6348d28e6afce59f76e72df3793606f0e07fd6f5 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/dept/dao/ibatis/DeptDaoImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dept/dao/ibatis/DeptDaoImpl.java
@@ -1,6 +1,7 @@
 package com.mortals.xhx.module.dept.dao.ibatis;
 
 
+import com.mortals.framework.model.Context;
 import com.mortals.framework.model.ParamDto;
 import com.mortals.framework.model.Result;
 import com.mortals.xhx.module.dept.model.DeptQuery;
@@ -9,17 +10,21 @@ import com.mortals.xhx.module.matter.model.MatterEntity;
 import org.springframework.stereotype.Repository;
 import com.mortals.xhx.module.dept.dao.DeptDao;
 import com.mortals.xhx.module.dept.model.DeptEntity;
+
 import java.util.Date;
+
 import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
+
 import java.util.List;
+
 /**
-* 閮ㄩ棬DaoImpl DAO鎺ュ彛
-*
-* @author zxfei
-* @date 2022-01-12
-*/
+ * 閮ㄩ棬DaoImpl DAO鎺ュ彛
+ *
+ * @author zxfei
+ * @date 2022-01-12
+ */
 @Repository("deptDao")
-public class DeptDaoImpl extends BaseCRUDDaoMybatis<DeptEntity,Long> implements DeptDao {
+public class DeptDaoImpl extends BaseCRUDDaoMybatis<DeptEntity, Long> implements DeptDao {
     /**
      * @param deptQuery
      * @return
@@ -41,4 +46,13 @@ public class DeptDaoImpl extends BaseCRUDDaoMybatis<DeptEntity,Long> implements
         List list = this.getSqlSession().selectList(this.getSqlId(GET_BUSINESS_BY_DEPT), paramDto);
         return list;
     }
+
+    /**
+     * @return
+     */
+    @Override
+    public List<DeptEntity> getDeptListByExistBusiness(DeptQuery deptQuery) {
+        ParamDto paramDto = this.getQueryParam(deptQuery);
+        return this.getSqlSession().selectList(this.getSqlId(GET_DEPTLIST_BY_EXISTBUSINESS),paramDto);
+    }
 }
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dept/service/DeptService.java b/base-manager/src/main/java/com/mortals/xhx/module/dept/service/DeptService.java
index f3baf00407652c0ac8ec6a78302346b0783885ea..0d7e4596e5022546e8e9f77233dd0ecb548a00df 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/dept/service/DeptService.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dept/service/DeptService.java
@@ -49,6 +49,6 @@ public interface DeptService extends ICRUDCacheService<DeptEntity, Long> {
 
     Rest<Map<String,List<DeptVo>>> getDeptListByBusiness(DeptQuery deptQuery, Context context);
 
-
+    List<DeptEntity> getDeptListByExistBusiness(DeptQuery deptQuery, Context context);
 
 }
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dept/service/impl/DeptServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/dept/service/impl/DeptServiceImpl.java
index fc9db1a0c2e6e1528a7c6975b3a006443cb9cc11..84055b7477f43f4a4a9edc670bbfa5a1e3674ba1 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/dept/service/impl/DeptServiceImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dept/service/impl/DeptServiceImpl.java
@@ -213,6 +213,14 @@ public class DeptServiceImpl extends AbstractCRUDCacheServiceImpl<DeptDao, DeptE
         return Rest.ok(collect);
     }
 
+    /**
+     * @return
+     */
+    @Override
+    public List<DeptEntity> getDeptListByExistBusiness(DeptQuery deptQuery, Context context) {
+        return this.dao.getDeptListByExistBusiness(deptQuery);
+    }
+
 
     /**
      * @param entity
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dept/web/DeptController.java b/base-manager/src/main/java/com/mortals/xhx/module/dept/web/DeptController.java
index 95a9ecf684002f79e75c12ec30e1303bae8ef1d0..8e3d46ecda2ed65f2498284461626b73804da4c5 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/dept/web/DeptController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dept/web/DeptController.java
@@ -23,10 +23,7 @@ import com.mortals.xhx.module.site.service.SiteService;
 import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.ObjectUtils;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -145,6 +142,36 @@ public class DeptController extends BaseCRUDJsonBodyMappingController<DeptServic
     }
 
 
+    /**
+     * 鏍规嵁閮ㄩ棬鏌ヨ涓氬姟
+     */
+    @GetMapping(value = "getDeptListByExistBusiness")
+    @UnAuth
+    public String getDeptListByExistBusiness(@RequestParam("siteId") Long siteId) {
+        JSONObject jsonObject = new JSONObject();
+        String busiDesc = "鏍规嵁涓氬姟鏌ヨ瀛樺湪鐨勯儴闂ㄥ垪琛�" + this.getModuleDesc();
+        try {
+            if (ObjectUtils.isEmpty(siteId)) {
+                throw new AppException("绔欑偣id涓嶈兘涓虹┖锛�");
+            }
+            DeptQuery query = new DeptQuery();
+            query.setSiteId(siteId);
+            List<DeptEntity> deptList = this.service.getDeptListByExistBusiness(query, getContext());
+            if (!ObjectUtils.isEmpty(getContext()) && !ObjectUtils.isEmpty(getContext().getUser())) {
+                recordSysLog(request, busiDesc + " 銆愭垚鍔熴€�");
+            }
+            jsonObject.put(KEY_RESULT_DATA, deptList);
+            jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
+            jsonObject.put(KEY_RESULT_MSG, busiDesc + "鎴愬姛锛�");
+        } catch (Exception e) {
+            log.error("鑾峰彇寮傚父", e);
+            jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
+            jsonObject.put(KEY_RESULT_MSG, super.convertException(e));
+        }
+        return jsonObject.toJSONString();
+    }
+
+
     /**
      * 鏍规嵁閮ㄩ棬鏌ヨ涓氬姟
      */
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dimension/dao/DimensionDao.java b/base-manager/src/main/java/com/mortals/xhx/module/dimension/dao/DimensionDao.java
new file mode 100644
index 0000000000000000000000000000000000000000..ec812973139ccad494e445e45090dbd9424b9124
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dimension/dao/DimensionDao.java
@@ -0,0 +1,17 @@
+package com.mortals.xhx.module.dimension.dao;
+
+import com.mortals.framework.dao.ICRUDDao;
+import com.mortals.xhx.module.dimension.model.DimensionEntity;
+
+/**
+* 鎺堟潈缁村害Dao
+* 鎺堟潈缁村害 DAO鎺ュ彛
+*
+* @author zxfei
+* @date 2024-05-16
+*/
+
+public interface  DimensionDao extends ICRUDDao<DimensionEntity,Long>{
+
+
+}
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dimension/dao/DimensionResourceRuleDao.java b/base-manager/src/main/java/com/mortals/xhx/module/dimension/dao/DimensionResourceRuleDao.java
new file mode 100644
index 0000000000000000000000000000000000000000..e9040e683531de8ae9b11978e6ffd76b68a9cf31
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dimension/dao/DimensionResourceRuleDao.java
@@ -0,0 +1,18 @@
+package com.mortals.xhx.module.dimension.dao;
+
+import com.mortals.framework.dao.ICRUDDao;
+import com.mortals.xhx.module.dimension.model.DimensionResourceRuleEntity;
+
+import java.util.List;
+/**
+* 瑙掕壊璧勬簮缁村害瑙勫垯Dao
+* 瑙掕壊璧勬簮缁村害瑙勫垯 DAO鎺ュ彛
+*
+* @author zxfei
+* @date 2024-05-16
+*/
+
+public interface  DimensionResourceRuleDao extends ICRUDDao<DimensionResourceRuleEntity,Long>{
+
+    List<DimensionResourceRuleEntity> getRoleComponentRule(Long userId,String route);
+}
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dimension/dao/ibatis/DimensionDaoImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/dimension/dao/ibatis/DimensionDaoImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..48e789e4b4796174a83c67ef40980c4fb85088f5
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dimension/dao/ibatis/DimensionDaoImpl.java
@@ -0,0 +1,20 @@
+package com.mortals.xhx.module.dimension.dao.ibatis;
+
+
+import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
+import com.mortals.xhx.module.dimension.dao.DimensionDao;
+import com.mortals.xhx.module.dimension.model.DimensionEntity;
+import org.springframework.stereotype.Repository;
+
+/**
+* 鎺堟潈缁村害DaoImpl DAO鎺ュ彛
+*
+* @author zxfei
+* @date 2024-05-16
+*/
+@Repository("dimensionDao")
+public class DimensionDaoImpl extends BaseCRUDDaoMybatis<DimensionEntity,Long> implements DimensionDao {
+
+
+
+}
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dimension/dao/ibatis/DimensionResourceRuleDaoImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/dimension/dao/ibatis/DimensionResourceRuleDaoImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..dcb30bdd5a6dda8794231d93a9f79ab38fb1446f
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dimension/dao/ibatis/DimensionResourceRuleDaoImpl.java
@@ -0,0 +1,36 @@
+package com.mortals.xhx.module.dimension.dao.ibatis;
+
+
+import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
+import com.mortals.xhx.module.dimension.dao.DimensionResourceRuleDao;
+import com.mortals.xhx.module.dimension.model.DimensionResourceRuleEntity;
+import org.springframework.stereotype.Repository;
+
+import java.util.HashMap;
+import java.util.List;
+/**
+* 瑙掕壊璧勬簮缁村害瑙勫垯DaoImpl DAO鎺ュ彛
+*
+* @author zxfei
+* @date 2024-05-16
+*/
+@Repository("dimensionResourceRuleDao")
+public class DimensionResourceRuleDaoImpl extends BaseCRUDDaoMybatis<DimensionResourceRuleEntity,Long> implements DimensionResourceRuleDao {
+
+
+    /**
+     * @param userId
+     * @param route
+     * @return
+     */
+    @Override
+    public List<DimensionResourceRuleEntity> getRoleComponentRule(Long userId, String route) {
+
+        return getSqlSession().selectList(getSqlId("getRoleComponentRule"), new HashMap<String, Object>() {
+            {
+                put("userId", userId);
+                put("route", route);
+            }
+        });
+    }
+}
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dimension/model/DimensionEntity.java b/base-manager/src/main/java/com/mortals/xhx/module/dimension/model/DimensionEntity.java
new file mode 100644
index 0000000000000000000000000000000000000000..3471e23ec791f27ff780366ea1a3ccf0b22b0b86
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dimension/model/DimensionEntity.java
@@ -0,0 +1,52 @@
+package com.mortals.xhx.module.dimension.model;
+import com.mortals.xhx.module.dimension.model.vo.DimensionVo;
+import lombok.Data;
+/**
+* 鎺堟潈缁村害瀹炰綋瀵硅薄
+*
+* @author zxfei
+* @date 2024-05-16
+*/
+@Data
+public class DimensionEntity extends DimensionVo {
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 缁村害缂栫爜
+    */
+    private String dimensionCode;
+    /**
+    * 缁村害鍚嶇О
+    */
+    private String dimensionName;
+    /**
+    * 缁村害鍊�
+    */
+    private String dimensionValue;
+    /**
+    * 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+    */
+    private Integer dimensionType;
+    @Override
+    public int hashCode() {
+         return this.getId().hashCode();
+    }
+    @Override
+    public boolean equals(Object obj) {
+        if (obj == null) return false;
+        if (obj instanceof DimensionEntity) {
+            DimensionEntity tmp = (DimensionEntity) obj;
+            if (this.getId() == tmp.getId()) {
+                 return true;
+            }
+        }
+        return false;
+    }
+
+    public void initAttrValue(){
+            this.dimensionCode = "";
+            this.dimensionName = "";
+            this.dimensionValue = "";
+            this.dimensionType = 1;
+    }
+}
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dimension/model/DimensionQuery.java b/base-manager/src/main/java/com/mortals/xhx/module/dimension/model/DimensionQuery.java
new file mode 100644
index 0000000000000000000000000000000000000000..09acca2418ed54216458be74c05da2f6cb1d30cc
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dimension/model/DimensionQuery.java
@@ -0,0 +1,898 @@
+package com.mortals.xhx.module.dimension.model;
+
+import java.util.List;
+
+/**
+* 鎺堟潈缁村害鏌ヨ瀵硅薄
+*
+* @author zxfei
+* @date 2024-05-16
+*/
+public class DimensionQuery extends DimensionEntity {
+    /** 寮€濮� 搴忓彿锛屼富閿紝鑷闀� */
+    private Long idStart;
+
+    /** 缁撴潫 搴忓彿锛屼富閿紝鑷闀� */
+    private Long idEnd;
+
+    /** 澧炲姞 搴忓彿锛屼富閿紝鑷闀� */
+    private Long idIncrement;
+
+    /** 搴忓彿锛屼富閿紝鑷闀垮垪琛� */
+    private List <Long> idList;
+
+    /** 搴忓彿锛屼富閿紝鑷闀挎帓闄ゅ垪琛� */
+    private List <Long> idNotList;
+
+    /** 缁村害缂栫爜 */
+    private List<String> dimensionCodeList;
+
+    /** 缁村害缂栫爜鎺掗櫎鍒楄〃 */
+    private List <String> dimensionCodeNotList;
+    /** 缁村害鍚嶇О */
+    private List<String> dimensionNameList;
+
+    /** 缁村害鍚嶇О鎺掗櫎鍒楄〃 */
+    private List <String> dimensionNameNotList;
+    /** 缁村害鍊� */
+    private List<String> dimensionValueList;
+
+    /** 缁村害鍊兼帓闄ゅ垪琛� */
+    private List <String> dimensionValueNotList;
+    /** 寮€濮� 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�) */
+    private Integer dimensionTypeStart;
+
+    /** 缁撴潫 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�) */
+    private Integer dimensionTypeEnd;
+
+    /** 澧炲姞 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�) */
+    private Integer dimensionTypeIncrement;
+
+    /** 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)鍒楄〃 */
+    private List <Integer> dimensionTypeList;
+
+    /** 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)鎺掗櫎鍒楄〃 */
+    private List <Integer> dimensionTypeNotList;
+
+    /** 寮€濮� 鍒涘缓鏃堕棿 */
+    private String createTimeStart;
+
+    /** 缁撴潫 鍒涘缓鏃堕棿 */
+    private String createTimeEnd;
+
+    /** 寮€濮� 鍒涘缓鐢ㄦ埛 */
+    private Long createUserIdStart;
+
+    /** 缁撴潫 鍒涘缓鐢ㄦ埛 */
+    private Long createUserIdEnd;
+
+    /** 澧炲姞 鍒涘缓鐢ㄦ埛 */
+    private Long createUserIdIncrement;
+
+    /** 鍒涘缓鐢ㄦ埛鍒楄〃 */
+    private List <Long> createUserIdList;
+
+    /** 鍒涘缓鐢ㄦ埛鎺掗櫎鍒楄〃 */
+    private List <Long> createUserIdNotList;
+
+    /** 寮€濮� 鏇存柊鐢ㄦ埛 */
+    private Long updateUserIdStart;
+
+    /** 缁撴潫 鏇存柊鐢ㄦ埛 */
+    private Long updateUserIdEnd;
+
+    /** 澧炲姞 鏇存柊鐢ㄦ埛 */
+    private Long updateUserIdIncrement;
+
+    /** 鏇存柊鐢ㄦ埛鍒楄〃 */
+    private List <Long> updateUserIdList;
+
+    /** 鏇存柊鐢ㄦ埛鎺掗櫎鍒楄〃 */
+    private List <Long> updateUserIdNotList;
+
+    /** 寮€濮� 鏇存柊鏃堕棿 */
+    private String updateTimeStart;
+
+    /** 缁撴潫 鏇存柊鏃堕棿 */
+    private String updateTimeEnd;
+
+    /** OR鏉′欢闆嗗悎锛屽垪琛ㄩ」涔嬮棿鏄疧R锛岄」鍐呭涔嬮棿鏄疉ND锛屽锛�(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
+    private List<DimensionQuery> orConditionList;
+
+    /** AND鏉′欢闆嗗悎锛屽垪琛ㄩ」涔嬮棿鏄疉ND锛岄」鍐呭涔嬮棿鏄疧R锛屽锛�(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
+    private List<DimensionQuery> andConditionList;
+
+    public DimensionQuery(){}
+
+    /**
+    * 鑾峰彇 寮€濮� 搴忓彿锛屼富閿紝鑷闀�
+    * @return idStart
+    */
+    public Long getIdStart(){
+        return this.idStart;
+    }
+
+    /**
+    * 璁剧疆 寮€濮� 搴忓彿锛屼富閿紝鑷闀�
+    * @param idStart
+    */
+    public void setIdStart(Long idStart){
+        this.idStart = idStart;
+    }
+
+    /**
+    * 鑾峰彇 缁撴潫 搴忓彿锛屼富閿紝鑷闀�
+    * @return $idEnd
+    */
+    public Long getIdEnd(){
+        return this.idEnd;
+    }
+
+    /**
+    * 璁剧疆 缁撴潫 搴忓彿锛屼富閿紝鑷闀�
+    * @param idEnd
+    */
+    public void setIdEnd(Long idEnd){
+        this.idEnd = idEnd;
+    }
+
+    /**
+    * 鑾峰彇 澧炲姞 搴忓彿锛屼富閿紝鑷闀�
+    * @return idIncrement
+    */
+    public Long getIdIncrement(){
+        return this.idIncrement;
+    }
+
+    /**
+    * 璁剧疆 澧炲姞 搴忓彿锛屼富閿紝鑷闀�
+    * @param idIncrement
+    */
+    public void setIdIncrement(Long idIncrement){
+        this.idIncrement = idIncrement;
+    }
+
+    /**
+    * 鑾峰彇 搴忓彿锛屼富閿紝鑷闀�
+    * @return idList
+    */
+    public List<Long> getIdList(){
+        return this.idList;
+    }
+
+    /**
+    * 璁剧疆 搴忓彿锛屼富閿紝鑷闀�
+    * @param idList
+    */
+    public void setIdList(List<Long> idList){
+        this.idList = idList;
+    }
+
+    /**
+    * 鑾峰彇 搴忓彿锛屼富閿紝鑷闀�
+    * @return idNotList
+    */
+    public List<Long> getIdNotList(){
+        return this.idNotList;
+    }
+
+    /**
+    * 璁剧疆 搴忓彿锛屼富閿紝鑷闀�
+    * @param idNotList
+    */
+    public void setIdNotList(List<Long> idNotList){
+        this.idNotList = idNotList;
+    }
+
+
+    /**
+    * 鑾峰彇 缁村害缂栫爜
+    * @return dimensionCodeList
+    */
+    public List<String> getDimensionCodeList(){
+        return this.dimensionCodeList;
+    }
+
+    /**
+    * 璁剧疆 缁村害缂栫爜
+    * @param dimensionCodeList
+    */
+    public void setDimensionCodeList(List<String> dimensionCodeList){
+        this.dimensionCodeList = dimensionCodeList;
+    }
+
+    /**
+    * 鑾峰彇 缁村害缂栫爜
+    * @return dimensionCodeNotList
+    */
+    public List<String> getDimensionCodeNotList(){
+        return this.dimensionCodeNotList;
+    }
+
+    /**
+    * 璁剧疆 缁村害缂栫爜
+    * @param dimensionCodeNotList
+    */
+    public void setDimensionCodeNotList(List<String> dimensionCodeNotList){
+        this.dimensionCodeNotList = dimensionCodeNotList;
+    }
+
+    /**
+    * 鑾峰彇 缁村害鍚嶇О
+    * @return dimensionNameList
+    */
+    public List<String> getDimensionNameList(){
+        return this.dimensionNameList;
+    }
+
+    /**
+    * 璁剧疆 缁村害鍚嶇О
+    * @param dimensionNameList
+    */
+    public void setDimensionNameList(List<String> dimensionNameList){
+        this.dimensionNameList = dimensionNameList;
+    }
+
+    /**
+    * 鑾峰彇 缁村害鍚嶇О
+    * @return dimensionNameNotList
+    */
+    public List<String> getDimensionNameNotList(){
+        return this.dimensionNameNotList;
+    }
+
+    /**
+    * 璁剧疆 缁村害鍚嶇О
+    * @param dimensionNameNotList
+    */
+    public void setDimensionNameNotList(List<String> dimensionNameNotList){
+        this.dimensionNameNotList = dimensionNameNotList;
+    }
+
+    /**
+    * 鑾峰彇 缁村害鍊�
+    * @return dimensionValueList
+    */
+    public List<String> getDimensionValueList(){
+        return this.dimensionValueList;
+    }
+
+    /**
+    * 璁剧疆 缁村害鍊�
+    * @param dimensionValueList
+    */
+    public void setDimensionValueList(List<String> dimensionValueList){
+        this.dimensionValueList = dimensionValueList;
+    }
+
+    /**
+    * 鑾峰彇 缁村害鍊�
+    * @return dimensionValueNotList
+    */
+    public List<String> getDimensionValueNotList(){
+        return this.dimensionValueNotList;
+    }
+
+    /**
+    * 璁剧疆 缁村害鍊�
+    * @param dimensionValueNotList
+    */
+    public void setDimensionValueNotList(List<String> dimensionValueNotList){
+        this.dimensionValueNotList = dimensionValueNotList;
+    }
+
+    /**
+    * 鑾峰彇 寮€濮� 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+    * @return dimensionTypeStart
+    */
+    public Integer getDimensionTypeStart(){
+        return this.dimensionTypeStart;
+    }
+
+    /**
+    * 璁剧疆 寮€濮� 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+    * @param dimensionTypeStart
+    */
+    public void setDimensionTypeStart(Integer dimensionTypeStart){
+        this.dimensionTypeStart = dimensionTypeStart;
+    }
+
+    /**
+    * 鑾峰彇 缁撴潫 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+    * @return $dimensionTypeEnd
+    */
+    public Integer getDimensionTypeEnd(){
+        return this.dimensionTypeEnd;
+    }
+
+    /**
+    * 璁剧疆 缁撴潫 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+    * @param dimensionTypeEnd
+    */
+    public void setDimensionTypeEnd(Integer dimensionTypeEnd){
+        this.dimensionTypeEnd = dimensionTypeEnd;
+    }
+
+    /**
+    * 鑾峰彇 澧炲姞 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+    * @return dimensionTypeIncrement
+    */
+    public Integer getDimensionTypeIncrement(){
+        return this.dimensionTypeIncrement;
+    }
+
+    /**
+    * 璁剧疆 澧炲姞 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+    * @param dimensionTypeIncrement
+    */
+    public void setDimensionTypeIncrement(Integer dimensionTypeIncrement){
+        this.dimensionTypeIncrement = dimensionTypeIncrement;
+    }
+
+    /**
+    * 鑾峰彇 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+    * @return dimensionTypeList
+    */
+    public List<Integer> getDimensionTypeList(){
+        return this.dimensionTypeList;
+    }
+
+    /**
+    * 璁剧疆 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+    * @param dimensionTypeList
+    */
+    public void setDimensionTypeList(List<Integer> dimensionTypeList){
+        this.dimensionTypeList = dimensionTypeList;
+    }
+
+    /**
+    * 鑾峰彇 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+    * @return dimensionTypeNotList
+    */
+    public List<Integer> getDimensionTypeNotList(){
+        return this.dimensionTypeNotList;
+    }
+
+    /**
+    * 璁剧疆 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+    * @param dimensionTypeNotList
+    */
+    public void setDimensionTypeNotList(List<Integer> dimensionTypeNotList){
+        this.dimensionTypeNotList = dimensionTypeNotList;
+    }
+
+
+    /**
+    * 鑾峰彇 寮€濮� 鍒涘缓鏃堕棿
+    * @return createTimeStart
+    */
+    public String getCreateTimeStart(){
+        return this.createTimeStart;
+    }
+
+    /**
+    * 璁剧疆 寮€濮� 鍒涘缓鏃堕棿
+    * @param createTimeStart
+    */
+    public void setCreateTimeStart(String createTimeStart){
+        this.createTimeStart = createTimeStart;
+    }
+
+    /**
+    * 鑾峰彇 缁撴潫 鍒涘缓鏃堕棿
+    * @return createTimeEnd
+    */
+    public String getCreateTimeEnd(){
+        return this.createTimeEnd;
+    }
+
+    /**
+    * 璁剧疆 缁撴潫 鍒涘缓鏃堕棿
+    * @param createTimeEnd
+    */
+    public void setCreateTimeEnd(String createTimeEnd){
+        this.createTimeEnd = createTimeEnd;
+    }
+
+    /**
+    * 鑾峰彇 寮€濮� 鍒涘缓鐢ㄦ埛
+    * @return createUserIdStart
+    */
+    public Long getCreateUserIdStart(){
+        return this.createUserIdStart;
+    }
+
+    /**
+    * 璁剧疆 寮€濮� 鍒涘缓鐢ㄦ埛
+    * @param createUserIdStart
+    */
+    public void setCreateUserIdStart(Long createUserIdStart){
+        this.createUserIdStart = createUserIdStart;
+    }
+
+    /**
+    * 鑾峰彇 缁撴潫 鍒涘缓鐢ㄦ埛
+    * @return $createUserIdEnd
+    */
+    public Long getCreateUserIdEnd(){
+        return this.createUserIdEnd;
+    }
+
+    /**
+    * 璁剧疆 缁撴潫 鍒涘缓鐢ㄦ埛
+    * @param createUserIdEnd
+    */
+    public void setCreateUserIdEnd(Long createUserIdEnd){
+        this.createUserIdEnd = createUserIdEnd;
+    }
+
+    /**
+    * 鑾峰彇 澧炲姞 鍒涘缓鐢ㄦ埛
+    * @return createUserIdIncrement
+    */
+    public Long getCreateUserIdIncrement(){
+        return this.createUserIdIncrement;
+    }
+
+    /**
+    * 璁剧疆 澧炲姞 鍒涘缓鐢ㄦ埛
+    * @param createUserIdIncrement
+    */
+    public void setCreateUserIdIncrement(Long createUserIdIncrement){
+        this.createUserIdIncrement = createUserIdIncrement;
+    }
+
+    /**
+    * 鑾峰彇 鍒涘缓鐢ㄦ埛
+    * @return createUserIdList
+    */
+    public List<Long> getCreateUserIdList(){
+        return this.createUserIdList;
+    }
+
+    /**
+    * 璁剧疆 鍒涘缓鐢ㄦ埛
+    * @param createUserIdList
+    */
+    public void setCreateUserIdList(List<Long> createUserIdList){
+        this.createUserIdList = createUserIdList;
+    }
+
+    /**
+    * 鑾峰彇 鍒涘缓鐢ㄦ埛
+    * @return createUserIdNotList
+    */
+    public List<Long> getCreateUserIdNotList(){
+        return this.createUserIdNotList;
+    }
+
+    /**
+    * 璁剧疆 鍒涘缓鐢ㄦ埛
+    * @param createUserIdNotList
+    */
+    public void setCreateUserIdNotList(List<Long> createUserIdNotList){
+        this.createUserIdNotList = createUserIdNotList;
+    }
+
+
+    /**
+    * 鑾峰彇 寮€濮� 鏇存柊鐢ㄦ埛
+    * @return updateUserIdStart
+    */
+    public Long getUpdateUserIdStart(){
+        return this.updateUserIdStart;
+    }
+
+    /**
+    * 璁剧疆 寮€濮� 鏇存柊鐢ㄦ埛
+    * @param updateUserIdStart
+    */
+    public void setUpdateUserIdStart(Long updateUserIdStart){
+        this.updateUserIdStart = updateUserIdStart;
+    }
+
+    /**
+    * 鑾峰彇 缁撴潫 鏇存柊鐢ㄦ埛
+    * @return $updateUserIdEnd
+    */
+    public Long getUpdateUserIdEnd(){
+        return this.updateUserIdEnd;
+    }
+
+    /**
+    * 璁剧疆 缁撴潫 鏇存柊鐢ㄦ埛
+    * @param updateUserIdEnd
+    */
+    public void setUpdateUserIdEnd(Long updateUserIdEnd){
+        this.updateUserIdEnd = updateUserIdEnd;
+    }
+
+    /**
+    * 鑾峰彇 澧炲姞 鏇存柊鐢ㄦ埛
+    * @return updateUserIdIncrement
+    */
+    public Long getUpdateUserIdIncrement(){
+        return this.updateUserIdIncrement;
+    }
+
+    /**
+    * 璁剧疆 澧炲姞 鏇存柊鐢ㄦ埛
+    * @param updateUserIdIncrement
+    */
+    public void setUpdateUserIdIncrement(Long updateUserIdIncrement){
+        this.updateUserIdIncrement = updateUserIdIncrement;
+    }
+
+    /**
+    * 鑾峰彇 鏇存柊鐢ㄦ埛
+    * @return updateUserIdList
+    */
+    public List<Long> getUpdateUserIdList(){
+        return this.updateUserIdList;
+    }
+
+    /**
+    * 璁剧疆 鏇存柊鐢ㄦ埛
+    * @param updateUserIdList
+    */
+    public void setUpdateUserIdList(List<Long> updateUserIdList){
+        this.updateUserIdList = updateUserIdList;
+    }
+
+    /**
+    * 鑾峰彇 鏇存柊鐢ㄦ埛
+    * @return updateUserIdNotList
+    */
+    public List<Long> getUpdateUserIdNotList(){
+        return this.updateUserIdNotList;
+    }
+
+    /**
+    * 璁剧疆 鏇存柊鐢ㄦ埛
+    * @param updateUserIdNotList
+    */
+    public void setUpdateUserIdNotList(List<Long> updateUserIdNotList){
+        this.updateUserIdNotList = updateUserIdNotList;
+    }
+
+
+    /**
+    * 鑾峰彇 寮€濮� 鏇存柊鏃堕棿
+    * @return updateTimeStart
+    */
+    public String getUpdateTimeStart(){
+        return this.updateTimeStart;
+    }
+
+    /**
+    * 璁剧疆 寮€濮� 鏇存柊鏃堕棿
+    * @param updateTimeStart
+    */
+    public void setUpdateTimeStart(String updateTimeStart){
+        this.updateTimeStart = updateTimeStart;
+    }
+
+    /**
+    * 鑾峰彇 缁撴潫 鏇存柊鏃堕棿
+    * @return updateTimeEnd
+    */
+    public String getUpdateTimeEnd(){
+        return this.updateTimeEnd;
+    }
+
+    /**
+    * 璁剧疆 缁撴潫 鏇存柊鏃堕棿
+    * @param updateTimeEnd
+    */
+    public void setUpdateTimeEnd(String updateTimeEnd){
+        this.updateTimeEnd = updateTimeEnd;
+    }
+
+    /**
+    * 璁剧疆  搴忓彿锛屼富閿紝鑷闀�
+    * @param id
+    */
+    public DimensionQuery id(Long id){
+	    setId(id);
+		return this;
+    }
+	
+	 /**
+    * 璁剧疆 寮€濮� 搴忓彿锛屼富閿紝鑷闀�
+    * @param idStart
+    */
+    public DimensionQuery idStart(Long idStart){
+		this.idStart = idStart;
+		return this;
+    }
+
+    /**
+    * 璁剧疆 缁撴潫 搴忓彿锛屼富閿紝鑷闀�
+    * @param idEnd
+    */
+    public DimensionQuery idEnd(Long idEnd){
+		this.idEnd = idEnd;
+		return this;
+    }
+
+    /**
+    * 璁剧疆 澧炲姞 搴忓彿锛屼富閿紝鑷闀�
+    * @param idIncrement
+    */
+    public DimensionQuery idIncrement(Long idIncrement){
+		this.idIncrement = idIncrement;
+		return this;
+    }
+
+    /**
+    * 璁剧疆 搴忓彿锛屼富閿紝鑷闀�
+    * @param idList
+    */
+    public DimensionQuery idList(List<Long> idList){
+        this.idList = idList;
+		return this;
+        }
+
+        /**
+        * 璁剧疆 搴忓彿锛屼富閿紝鑷闀�
+        * @param idNotList
+        */
+        public DimensionQuery idNotList(List<Long> idNotList){
+        this.idNotList = idNotList;
+        return this;
+        }
+
+
+	/**
+    * 璁剧疆 缁村害缂栫爜
+    * @param dimensionCode
+    */
+    public DimensionQuery dimensionCode(String dimensionCode){
+        setDimensionCode(dimensionCode);
+		return this;
+    }
+
+    /**
+    * 璁剧疆 缁村害缂栫爜
+    * @param dimensionCodeList
+    */
+    public DimensionQuery dimensionCodeList(List<String> dimensionCodeList){
+        this.dimensionCodeList = dimensionCodeList;
+		return this;
+    }
+
+
+	/**
+    * 璁剧疆 缁村害鍚嶇О
+    * @param dimensionName
+    */
+    public DimensionQuery dimensionName(String dimensionName){
+        setDimensionName(dimensionName);
+		return this;
+    }
+
+    /**
+    * 璁剧疆 缁村害鍚嶇О
+    * @param dimensionNameList
+    */
+    public DimensionQuery dimensionNameList(List<String> dimensionNameList){
+        this.dimensionNameList = dimensionNameList;
+		return this;
+    }
+
+
+	/**
+    * 璁剧疆 缁村害鍊�
+    * @param dimensionValue
+    */
+    public DimensionQuery dimensionValue(String dimensionValue){
+        setDimensionValue(dimensionValue);
+		return this;
+    }
+
+    /**
+    * 璁剧疆 缁村害鍊�
+    * @param dimensionValueList
+    */
+    public DimensionQuery dimensionValueList(List<String> dimensionValueList){
+        this.dimensionValueList = dimensionValueList;
+		return this;
+    }
+
+    /**
+    * 璁剧疆  缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+    * @param dimensionType
+    */
+    public DimensionQuery dimensionType(Integer dimensionType){
+	    setDimensionType(dimensionType);
+		return this;
+    }
+	
+	 /**
+    * 璁剧疆 寮€濮� 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+    * @param dimensionTypeStart
+    */
+    public DimensionQuery dimensionTypeStart(Integer dimensionTypeStart){
+		this.dimensionTypeStart = dimensionTypeStart;
+		return this;
+    }
+
+    /**
+    * 璁剧疆 缁撴潫 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+    * @param dimensionTypeEnd
+    */
+    public DimensionQuery dimensionTypeEnd(Integer dimensionTypeEnd){
+		this.dimensionTypeEnd = dimensionTypeEnd;
+		return this;
+    }
+
+    /**
+    * 璁剧疆 澧炲姞 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+    * @param dimensionTypeIncrement
+    */
+    public DimensionQuery dimensionTypeIncrement(Integer dimensionTypeIncrement){
+		this.dimensionTypeIncrement = dimensionTypeIncrement;
+		return this;
+    }
+
+    /**
+    * 璁剧疆 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+    * @param dimensionTypeList
+    */
+    public DimensionQuery dimensionTypeList(List<Integer> dimensionTypeList){
+        this.dimensionTypeList = dimensionTypeList;
+		return this;
+        }
+
+        /**
+        * 璁剧疆 缁村害绫诲瀷(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+        * @param dimensionTypeNotList
+        */
+        public DimensionQuery dimensionTypeNotList(List<Integer> dimensionTypeNotList){
+        this.dimensionTypeNotList = dimensionTypeNotList;
+        return this;
+        }
+
+
+    /**
+    * 璁剧疆  鍒涘缓鐢ㄦ埛
+    * @param createUserId
+    */
+    public DimensionQuery createUserId(Long createUserId){
+	    setCreateUserId(createUserId);
+		return this;
+    }
+	
+	 /**
+    * 璁剧疆 寮€濮� 鍒涘缓鐢ㄦ埛
+    * @param createUserIdStart
+    */
+    public DimensionQuery createUserIdStart(Long createUserIdStart){
+		this.createUserIdStart = createUserIdStart;
+		return this;
+    }
+
+    /**
+    * 璁剧疆 缁撴潫 鍒涘缓鐢ㄦ埛
+    * @param createUserIdEnd
+    */
+    public DimensionQuery createUserIdEnd(Long createUserIdEnd){
+		this.createUserIdEnd = createUserIdEnd;
+		return this;
+    }
+
+    /**
+    * 璁剧疆 澧炲姞 鍒涘缓鐢ㄦ埛
+    * @param createUserIdIncrement
+    */
+    public DimensionQuery createUserIdIncrement(Long createUserIdIncrement){
+		this.createUserIdIncrement = createUserIdIncrement;
+		return this;
+    }
+
+    /**
+    * 璁剧疆 鍒涘缓鐢ㄦ埛
+    * @param createUserIdList
+    */
+    public DimensionQuery createUserIdList(List<Long> createUserIdList){
+        this.createUserIdList = createUserIdList;
+		return this;
+        }
+
+        /**
+        * 璁剧疆 鍒涘缓鐢ㄦ埛
+        * @param createUserIdNotList
+        */
+        public DimensionQuery createUserIdNotList(List<Long> createUserIdNotList){
+        this.createUserIdNotList = createUserIdNotList;
+        return this;
+        }
+
+    /**
+    * 璁剧疆  鏇存柊鐢ㄦ埛
+    * @param updateUserId
+    */
+    public DimensionQuery updateUserId(Long updateUserId){
+	    setUpdateUserId(updateUserId);
+		return this;
+    }
+	
+	 /**
+    * 璁剧疆 寮€濮� 鏇存柊鐢ㄦ埛
+    * @param updateUserIdStart
+    */
+    public DimensionQuery updateUserIdStart(Long updateUserIdStart){
+		this.updateUserIdStart = updateUserIdStart;
+		return this;
+    }
+
+    /**
+    * 璁剧疆 缁撴潫 鏇存柊鐢ㄦ埛
+    * @param updateUserIdEnd
+    */
+    public DimensionQuery updateUserIdEnd(Long updateUserIdEnd){
+		this.updateUserIdEnd = updateUserIdEnd;
+		return this;
+    }
+
+    /**
+    * 璁剧疆 澧炲姞 鏇存柊鐢ㄦ埛
+    * @param updateUserIdIncrement
+    */
+    public DimensionQuery updateUserIdIncrement(Long updateUserIdIncrement){
+		this.updateUserIdIncrement = updateUserIdIncrement;
+		return this;
+    }
+
+    /**
+    * 璁剧疆 鏇存柊鐢ㄦ埛
+    * @param updateUserIdList
+    */
+    public DimensionQuery updateUserIdList(List<Long> updateUserIdList){
+        this.updateUserIdList = updateUserIdList;
+		return this;
+        }
+
+        /**
+        * 璁剧疆 鏇存柊鐢ㄦ埛
+        * @param updateUserIdNotList
+        */
+        public DimensionQuery updateUserIdNotList(List<Long> updateUserIdNotList){
+        this.updateUserIdNotList = updateUserIdNotList;
+        return this;
+        }
+
+
+    /**
+    * 鑾峰彇 OR鏉′欢闆嗗悎锛屽垪琛ㄩ」涔嬮棿鏄疧R锛岄」鍐呭涔嬮棿鏄疉ND锛屽锛�(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
+    * @return orConditionList
+    */
+    public List<DimensionQuery> getOrConditionList(){
+    return this.orConditionList;
+    }
+
+    /**
+    * 璁剧疆 OR鏉′欢闆嗗悎锛屽垪琛ㄩ」涔嬮棿鏄疧R锛岄」鍐呭涔嬮棿鏄疉ND锛屽锛�(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
+    * @param orConditionList
+    */
+    public void setOrConditionList(List<DimensionQuery> orConditionList){
+        this.orConditionList = orConditionList;
+    }
+
+    /**
+    * 鑾峰彇 AND鏉′欢闆嗗悎锛屽垪琛ㄩ」涔嬮棿鏄疉ND锛岄」鍐呭涔嬮棿鏄疧R锛屽锛�(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
+    * @return andConditionList
+    */
+    public List<DimensionQuery> getAndConditionList(){
+        return this.andConditionList;
+    }
+
+    /**
+    * 璁剧疆 AND鏉′欢闆嗗悎锛屽垪琛ㄩ」涔嬮棿鏄疉ND锛岄」鍐呭涔嬮棿鏄疧R锛屽锛�(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
+    * @param andConditionList
+    */
+    public void setAndConditionList(List<DimensionQuery> andConditionList){
+        this.andConditionList = andConditionList;
+    }
+
+}
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dimension/model/DimensionResourceRuleEntity.java b/base-manager/src/main/java/com/mortals/xhx/module/dimension/model/DimensionResourceRuleEntity.java
new file mode 100644
index 0000000000000000000000000000000000000000..591acf3aa96c70e7006b085d96a99dcb44ce3609
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dimension/model/DimensionResourceRuleEntity.java
@@ -0,0 +1,78 @@
+package com.mortals.xhx.module.dimension.model;
+
+import com.mortals.xhx.module.dimension.model.vo.DimensionResourceRuleVo;
+import lombok.Data;
+/**
+ * 瑙掕壊璧勬簮缁村害瑙勫垯瀹炰綋瀵硅薄
+ *
+ * @author zxfei
+ * @date 2024-05-22
+ */
+@Data
+public class DimensionResourceRuleEntity extends DimensionResourceRuleVo {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 瑙掕壊ID
+     */
+    private Long roleId;
+    /**
+     * 璧勬簮ID
+     */
+    private Long resourceId;
+    /**
+     * 瑙勫垯缂栫爜
+     */
+    private String ruleCode;
+    /**
+     * 瑙勫垯鍚嶇О
+     */
+    private String ruleName;
+    /**
+     * 瑙勫垯鏉′欢(IN.灞炰簬,<.灏忎簬,>.澶т簬,=.绛変簬,!=.涓嶇瓑浜�,>=.澶т簬绛変簬,<=.灏忎簬绛変簬,like %.宸︽ā绯�,like %.鍙虫ā绯�)
+     */
+    private String ruleCondition;
+    /**
+     * 瑙勫垯鍊�,鍥哄畾鍊兼垨鑰呯郴缁熷彉閲�
+     */
+    private String ruleValue;
+    /**
+     * 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+     */
+    private Integer ruleType;
+    /**
+     * 瑙掕壊鍚嶇О
+     */
+    private String roleName;
+    /**
+     * 璧勬簮鍚嶇О
+     */
+    private String resourceName;
+    @Override
+    public int hashCode() {
+        return this.getId().hashCode();
+    }
+    @Override
+    public boolean equals(Object obj) {
+        if (obj == null) return false;
+        if (obj instanceof DimensionResourceRuleEntity) {
+            DimensionResourceRuleEntity tmp = (DimensionResourceRuleEntity) obj;
+            if (this.getId() == tmp.getId()) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public void initAttrValue(){
+        this.roleId = null;
+        this.resourceId = null;
+        this.ruleCode = "";
+        this.ruleName = "";
+        this.ruleCondition = "IN";
+        this.ruleValue = "";
+        this.ruleType = 1;
+        this.roleName = "";
+        this.resourceName = "";
+    }
+}
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dimension/model/DimensionResourceRuleQuery.java b/base-manager/src/main/java/com/mortals/xhx/module/dimension/model/DimensionResourceRuleQuery.java
new file mode 100644
index 0000000000000000000000000000000000000000..51a72208c6e1aa21ce5c55d5f04692c89d13b5d3
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dimension/model/DimensionResourceRuleQuery.java
@@ -0,0 +1,1365 @@
+package com.mortals.xhx.module.dimension.model;
+
+import java.util.List;
+/**
+ * 瑙掕壊璧勬簮缁村害瑙勫垯鏌ヨ瀵硅薄
+ *
+ * @author zxfei
+ * @date 2024-05-22
+ */
+public class DimensionResourceRuleQuery extends DimensionResourceRuleEntity {
+    /** 寮€濮� 搴忓彿锛屼富閿紝鑷闀� */
+    private Long idStart;
+
+    /** 缁撴潫 搴忓彿锛屼富閿紝鑷闀� */
+    private Long idEnd;
+
+    /** 澧炲姞 搴忓彿锛屼富閿紝鑷闀� */
+    private Long idIncrement;
+
+    /** 搴忓彿锛屼富閿紝鑷闀垮垪琛� */
+    private List <Long> idList;
+
+    /** 搴忓彿锛屼富閿紝鑷闀挎帓闄ゅ垪琛� */
+    private List <Long> idNotList;
+
+    /** 寮€濮� 瑙掕壊ID */
+    private Long roleIdStart;
+
+    /** 缁撴潫 瑙掕壊ID */
+    private Long roleIdEnd;
+
+    /** 澧炲姞 瑙掕壊ID */
+    private Long roleIdIncrement;
+
+    /** 瑙掕壊ID鍒楄〃 */
+    private List <Long> roleIdList;
+
+    /** 瑙掕壊ID鎺掗櫎鍒楄〃 */
+    private List <Long> roleIdNotList;
+
+    /** 寮€濮� 璧勬簮ID */
+    private Long resourceIdStart;
+
+    /** 缁撴潫 璧勬簮ID */
+    private Long resourceIdEnd;
+
+    /** 澧炲姞 璧勬簮ID */
+    private Long resourceIdIncrement;
+
+    /** 璧勬簮ID鍒楄〃 */
+    private List <Long> resourceIdList;
+
+    /** 璧勬簮ID鎺掗櫎鍒楄〃 */
+    private List <Long> resourceIdNotList;
+
+    /** 瑙勫垯缂栫爜 */
+    private List<String> ruleCodeList;
+
+    /** 瑙勫垯缂栫爜鎺掗櫎鍒楄〃 */
+    private List <String> ruleCodeNotList;
+    /** 瑙勫垯鍚嶇О */
+    private List<String> ruleNameList;
+
+    /** 瑙勫垯鍚嶇О鎺掗櫎鍒楄〃 */
+    private List <String> ruleNameNotList;
+    /** 瑙勫垯鏉′欢(IN.灞炰簬,<.灏忎簬,>.澶т簬,=.绛変簬,!=.涓嶇瓑浜�,>=.澶т簬绛変簬,<=.灏忎簬绛変簬,like %.宸︽ā绯�,like %.鍙虫ā绯�) */
+    private List<String> ruleConditionList;
+
+    /** 瑙勫垯鏉′欢(IN.灞炰簬,<.灏忎簬,>.澶т簬,=.绛変簬,!=.涓嶇瓑浜�,>=.澶т簬绛変簬,<=.灏忎簬绛変簬,like %.宸︽ā绯�,like %.鍙虫ā绯�)鎺掗櫎鍒楄〃 */
+    private List <String> ruleConditionNotList;
+    /** 瑙勫垯鍊�,鍥哄畾鍊兼垨鑰呯郴缁熷彉閲� */
+    private List<String> ruleValueList;
+
+    /** 瑙勫垯鍊�,鍥哄畾鍊兼垨鑰呯郴缁熷彉閲忔帓闄ゅ垪琛� */
+    private List <String> ruleValueNotList;
+    /** 寮€濮� 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�) */
+    private Integer ruleTypeStart;
+
+    /** 缁撴潫 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�) */
+    private Integer ruleTypeEnd;
+
+    /** 澧炲姞 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�) */
+    private Integer ruleTypeIncrement;
+
+    /** 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)鍒楄〃 */
+    private List <Integer> ruleTypeList;
+
+    /** 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)鎺掗櫎鍒楄〃 */
+    private List <Integer> ruleTypeNotList;
+
+    /** 寮€濮� 鍒涘缓鏃堕棿 */
+    private String createTimeStart;
+
+    /** 缁撴潫 鍒涘缓鏃堕棿 */
+    private String createTimeEnd;
+
+    /** 寮€濮� 鍒涘缓鐢ㄦ埛 */
+    private Long createUserIdStart;
+
+    /** 缁撴潫 鍒涘缓鐢ㄦ埛 */
+    private Long createUserIdEnd;
+
+    /** 澧炲姞 鍒涘缓鐢ㄦ埛 */
+    private Long createUserIdIncrement;
+
+    /** 鍒涘缓鐢ㄦ埛鍒楄〃 */
+    private List <Long> createUserIdList;
+
+    /** 鍒涘缓鐢ㄦ埛鎺掗櫎鍒楄〃 */
+    private List <Long> createUserIdNotList;
+
+    /** 寮€濮� 鏇存柊鐢ㄦ埛 */
+    private Long updateUserIdStart;
+
+    /** 缁撴潫 鏇存柊鐢ㄦ埛 */
+    private Long updateUserIdEnd;
+
+    /** 澧炲姞 鏇存柊鐢ㄦ埛 */
+    private Long updateUserIdIncrement;
+
+    /** 鏇存柊鐢ㄦ埛鍒楄〃 */
+    private List <Long> updateUserIdList;
+
+    /** 鏇存柊鐢ㄦ埛鎺掗櫎鍒楄〃 */
+    private List <Long> updateUserIdNotList;
+
+    /** 寮€濮� 鏇存柊鏃堕棿 */
+    private String updateTimeStart;
+
+    /** 缁撴潫 鏇存柊鏃堕棿 */
+    private String updateTimeEnd;
+
+    /** 瑙掕壊鍚嶇О */
+    private List<String> roleNameList;
+
+    /** 瑙掕壊鍚嶇О鎺掗櫎鍒楄〃 */
+    private List <String> roleNameNotList;
+    /** 璧勬簮鍚嶇О */
+    private List<String> resourceNameList;
+
+    /** 璧勬簮鍚嶇О鎺掗櫎鍒楄〃 */
+    private List <String> resourceNameNotList;
+    /** OR鏉′欢闆嗗悎锛屽垪琛ㄩ」涔嬮棿鏄疧R锛岄」鍐呭涔嬮棿鏄疉ND锛屽锛�(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
+    private List<DimensionResourceRuleQuery> orConditionList;
+
+    /** AND鏉′欢闆嗗悎锛屽垪琛ㄩ」涔嬮棿鏄疉ND锛岄」鍐呭涔嬮棿鏄疧R锛屽锛�(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
+    private List<DimensionResourceRuleQuery> andConditionList;
+
+    public DimensionResourceRuleQuery(){}
+
+    /**
+     * 鑾峰彇 寮€濮� 搴忓彿锛屼富閿紝鑷闀�
+     * @return idStart
+     */
+    public Long getIdStart(){
+        return this.idStart;
+    }
+
+    /**
+     * 璁剧疆 寮€濮� 搴忓彿锛屼富閿紝鑷闀�
+     * @param idStart
+     */
+    public void setIdStart(Long idStart){
+        this.idStart = idStart;
+    }
+
+    /**
+     * 鑾峰彇 缁撴潫 搴忓彿锛屼富閿紝鑷闀�
+     * @return $idEnd
+     */
+    public Long getIdEnd(){
+        return this.idEnd;
+    }
+
+    /**
+     * 璁剧疆 缁撴潫 搴忓彿锛屼富閿紝鑷闀�
+     * @param idEnd
+     */
+    public void setIdEnd(Long idEnd){
+        this.idEnd = idEnd;
+    }
+
+    /**
+     * 鑾峰彇 澧炲姞 搴忓彿锛屼富閿紝鑷闀�
+     * @return idIncrement
+     */
+    public Long getIdIncrement(){
+        return this.idIncrement;
+    }
+
+    /**
+     * 璁剧疆 澧炲姞 搴忓彿锛屼富閿紝鑷闀�
+     * @param idIncrement
+     */
+    public void setIdIncrement(Long idIncrement){
+        this.idIncrement = idIncrement;
+    }
+
+    /**
+     * 鑾峰彇 搴忓彿锛屼富閿紝鑷闀�
+     * @return idList
+     */
+    public List<Long> getIdList(){
+        return this.idList;
+    }
+
+    /**
+     * 璁剧疆 搴忓彿锛屼富閿紝鑷闀�
+     * @param idList
+     */
+    public void setIdList(List<Long> idList){
+        this.idList = idList;
+    }
+
+    /**
+     * 鑾峰彇 搴忓彿锛屼富閿紝鑷闀�
+     * @return idNotList
+     */
+    public List<Long> getIdNotList(){
+        return this.idNotList;
+    }
+
+    /**
+     * 璁剧疆 搴忓彿锛屼富閿紝鑷闀�
+     * @param idNotList
+     */
+    public void setIdNotList(List<Long> idNotList){
+        this.idNotList = idNotList;
+    }
+
+
+    /**
+     * 鑾峰彇 寮€濮� 瑙掕壊ID
+     * @return roleIdStart
+     */
+    public Long getRoleIdStart(){
+        return this.roleIdStart;
+    }
+
+    /**
+     * 璁剧疆 寮€濮� 瑙掕壊ID
+     * @param roleIdStart
+     */
+    public void setRoleIdStart(Long roleIdStart){
+        this.roleIdStart = roleIdStart;
+    }
+
+    /**
+     * 鑾峰彇 缁撴潫 瑙掕壊ID
+     * @return $roleIdEnd
+     */
+    public Long getRoleIdEnd(){
+        return this.roleIdEnd;
+    }
+
+    /**
+     * 璁剧疆 缁撴潫 瑙掕壊ID
+     * @param roleIdEnd
+     */
+    public void setRoleIdEnd(Long roleIdEnd){
+        this.roleIdEnd = roleIdEnd;
+    }
+
+    /**
+     * 鑾峰彇 澧炲姞 瑙掕壊ID
+     * @return roleIdIncrement
+     */
+    public Long getRoleIdIncrement(){
+        return this.roleIdIncrement;
+    }
+
+    /**
+     * 璁剧疆 澧炲姞 瑙掕壊ID
+     * @param roleIdIncrement
+     */
+    public void setRoleIdIncrement(Long roleIdIncrement){
+        this.roleIdIncrement = roleIdIncrement;
+    }
+
+    /**
+     * 鑾峰彇 瑙掕壊ID
+     * @return roleIdList
+     */
+    public List<Long> getRoleIdList(){
+        return this.roleIdList;
+    }
+
+    /**
+     * 璁剧疆 瑙掕壊ID
+     * @param roleIdList
+     */
+    public void setRoleIdList(List<Long> roleIdList){
+        this.roleIdList = roleIdList;
+    }
+
+    /**
+     * 鑾峰彇 瑙掕壊ID
+     * @return roleIdNotList
+     */
+    public List<Long> getRoleIdNotList(){
+        return this.roleIdNotList;
+    }
+
+    /**
+     * 璁剧疆 瑙掕壊ID
+     * @param roleIdNotList
+     */
+    public void setRoleIdNotList(List<Long> roleIdNotList){
+        this.roleIdNotList = roleIdNotList;
+    }
+
+
+    /**
+     * 鑾峰彇 寮€濮� 璧勬簮ID
+     * @return resourceIdStart
+     */
+    public Long getResourceIdStart(){
+        return this.resourceIdStart;
+    }
+
+    /**
+     * 璁剧疆 寮€濮� 璧勬簮ID
+     * @param resourceIdStart
+     */
+    public void setResourceIdStart(Long resourceIdStart){
+        this.resourceIdStart = resourceIdStart;
+    }
+
+    /**
+     * 鑾峰彇 缁撴潫 璧勬簮ID
+     * @return $resourceIdEnd
+     */
+    public Long getResourceIdEnd(){
+        return this.resourceIdEnd;
+    }
+
+    /**
+     * 璁剧疆 缁撴潫 璧勬簮ID
+     * @param resourceIdEnd
+     */
+    public void setResourceIdEnd(Long resourceIdEnd){
+        this.resourceIdEnd = resourceIdEnd;
+    }
+
+    /**
+     * 鑾峰彇 澧炲姞 璧勬簮ID
+     * @return resourceIdIncrement
+     */
+    public Long getResourceIdIncrement(){
+        return this.resourceIdIncrement;
+    }
+
+    /**
+     * 璁剧疆 澧炲姞 璧勬簮ID
+     * @param resourceIdIncrement
+     */
+    public void setResourceIdIncrement(Long resourceIdIncrement){
+        this.resourceIdIncrement = resourceIdIncrement;
+    }
+
+    /**
+     * 鑾峰彇 璧勬簮ID
+     * @return resourceIdList
+     */
+    public List<Long> getResourceIdList(){
+        return this.resourceIdList;
+    }
+
+    /**
+     * 璁剧疆 璧勬簮ID
+     * @param resourceIdList
+     */
+    public void setResourceIdList(List<Long> resourceIdList){
+        this.resourceIdList = resourceIdList;
+    }
+
+    /**
+     * 鑾峰彇 璧勬簮ID
+     * @return resourceIdNotList
+     */
+    public List<Long> getResourceIdNotList(){
+        return this.resourceIdNotList;
+    }
+
+    /**
+     * 璁剧疆 璧勬簮ID
+     * @param resourceIdNotList
+     */
+    public void setResourceIdNotList(List<Long> resourceIdNotList){
+        this.resourceIdNotList = resourceIdNotList;
+    }
+
+
+    /**
+     * 鑾峰彇 瑙勫垯缂栫爜
+     * @return ruleCodeList
+     */
+    public List<String> getRuleCodeList(){
+        return this.ruleCodeList;
+    }
+
+    /**
+     * 璁剧疆 瑙勫垯缂栫爜
+     * @param ruleCodeList
+     */
+    public void setRuleCodeList(List<String> ruleCodeList){
+        this.ruleCodeList = ruleCodeList;
+    }
+
+    /**
+     * 鑾峰彇 瑙勫垯缂栫爜
+     * @return ruleCodeNotList
+     */
+    public List<String> getRuleCodeNotList(){
+        return this.ruleCodeNotList;
+    }
+
+    /**
+     * 璁剧疆 瑙勫垯缂栫爜
+     * @param ruleCodeNotList
+     */
+    public void setRuleCodeNotList(List<String> ruleCodeNotList){
+        this.ruleCodeNotList = ruleCodeNotList;
+    }
+
+    /**
+     * 鑾峰彇 瑙勫垯鍚嶇О
+     * @return ruleNameList
+     */
+    public List<String> getRuleNameList(){
+        return this.ruleNameList;
+    }
+
+    /**
+     * 璁剧疆 瑙勫垯鍚嶇О
+     * @param ruleNameList
+     */
+    public void setRuleNameList(List<String> ruleNameList){
+        this.ruleNameList = ruleNameList;
+    }
+
+    /**
+     * 鑾峰彇 瑙勫垯鍚嶇О
+     * @return ruleNameNotList
+     */
+    public List<String> getRuleNameNotList(){
+        return this.ruleNameNotList;
+    }
+
+    /**
+     * 璁剧疆 瑙勫垯鍚嶇О
+     * @param ruleNameNotList
+     */
+    public void setRuleNameNotList(List<String> ruleNameNotList){
+        this.ruleNameNotList = ruleNameNotList;
+    }
+
+    /**
+     * 鑾峰彇 瑙勫垯鏉′欢(IN.灞炰簬,<.灏忎簬,>.澶т簬,=.绛変簬,!=.涓嶇瓑浜�,>=.澶т簬绛変簬,<=.灏忎簬绛変簬,like %.宸︽ā绯�,like %.鍙虫ā绯�)
+     * @return ruleConditionList
+     */
+    public List<String> getRuleConditionList(){
+        return this.ruleConditionList;
+    }
+
+    /**
+     * 璁剧疆 瑙勫垯鏉′欢(IN.灞炰簬,<.灏忎簬,>.澶т簬,=.绛変簬,!=.涓嶇瓑浜�,>=.澶т簬绛変簬,<=.灏忎簬绛変簬,like %.宸︽ā绯�,like %.鍙虫ā绯�)
+     * @param ruleConditionList
+     */
+    public void setRuleConditionList(List<String> ruleConditionList){
+        this.ruleConditionList = ruleConditionList;
+    }
+
+    /**
+     * 鑾峰彇 瑙勫垯鏉′欢(IN.灞炰簬,<.灏忎簬,>.澶т簬,=.绛変簬,!=.涓嶇瓑浜�,>=.澶т簬绛変簬,<=.灏忎簬绛変簬,like %.宸︽ā绯�,like %.鍙虫ā绯�)
+     * @return ruleConditionNotList
+     */
+    public List<String> getRuleConditionNotList(){
+        return this.ruleConditionNotList;
+    }
+
+    /**
+     * 璁剧疆 瑙勫垯鏉′欢(IN.灞炰簬,<.灏忎簬,>.澶т簬,=.绛変簬,!=.涓嶇瓑浜�,>=.澶т簬绛変簬,<=.灏忎簬绛変簬,like %.宸︽ā绯�,like %.鍙虫ā绯�)
+     * @param ruleConditionNotList
+     */
+    public void setRuleConditionNotList(List<String> ruleConditionNotList){
+        this.ruleConditionNotList = ruleConditionNotList;
+    }
+
+    /**
+     * 鑾峰彇 瑙勫垯鍊�,鍥哄畾鍊兼垨鑰呯郴缁熷彉閲�
+     * @return ruleValueList
+     */
+    public List<String> getRuleValueList(){
+        return this.ruleValueList;
+    }
+
+    /**
+     * 璁剧疆 瑙勫垯鍊�,鍥哄畾鍊兼垨鑰呯郴缁熷彉閲�
+     * @param ruleValueList
+     */
+    public void setRuleValueList(List<String> ruleValueList){
+        this.ruleValueList = ruleValueList;
+    }
+
+    /**
+     * 鑾峰彇 瑙勫垯鍊�,鍥哄畾鍊兼垨鑰呯郴缁熷彉閲�
+     * @return ruleValueNotList
+     */
+    public List<String> getRuleValueNotList(){
+        return this.ruleValueNotList;
+    }
+
+    /**
+     * 璁剧疆 瑙勫垯鍊�,鍥哄畾鍊兼垨鑰呯郴缁熷彉閲�
+     * @param ruleValueNotList
+     */
+    public void setRuleValueNotList(List<String> ruleValueNotList){
+        this.ruleValueNotList = ruleValueNotList;
+    }
+
+    /**
+     * 鑾峰彇 寮€濮� 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+     * @return ruleTypeStart
+     */
+    public Integer getRuleTypeStart(){
+        return this.ruleTypeStart;
+    }
+
+    /**
+     * 璁剧疆 寮€濮� 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+     * @param ruleTypeStart
+     */
+    public void setRuleTypeStart(Integer ruleTypeStart){
+        this.ruleTypeStart = ruleTypeStart;
+    }
+
+    /**
+     * 鑾峰彇 缁撴潫 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+     * @return $ruleTypeEnd
+     */
+    public Integer getRuleTypeEnd(){
+        return this.ruleTypeEnd;
+    }
+
+    /**
+     * 璁剧疆 缁撴潫 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+     * @param ruleTypeEnd
+     */
+    public void setRuleTypeEnd(Integer ruleTypeEnd){
+        this.ruleTypeEnd = ruleTypeEnd;
+    }
+
+    /**
+     * 鑾峰彇 澧炲姞 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+     * @return ruleTypeIncrement
+     */
+    public Integer getRuleTypeIncrement(){
+        return this.ruleTypeIncrement;
+    }
+
+    /**
+     * 璁剧疆 澧炲姞 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+     * @param ruleTypeIncrement
+     */
+    public void setRuleTypeIncrement(Integer ruleTypeIncrement){
+        this.ruleTypeIncrement = ruleTypeIncrement;
+    }
+
+    /**
+     * 鑾峰彇 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+     * @return ruleTypeList
+     */
+    public List<Integer> getRuleTypeList(){
+        return this.ruleTypeList;
+    }
+
+    /**
+     * 璁剧疆 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+     * @param ruleTypeList
+     */
+    public void setRuleTypeList(List<Integer> ruleTypeList){
+        this.ruleTypeList = ruleTypeList;
+    }
+
+    /**
+     * 鑾峰彇 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+     * @return ruleTypeNotList
+     */
+    public List<Integer> getRuleTypeNotList(){
+        return this.ruleTypeNotList;
+    }
+
+    /**
+     * 璁剧疆 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+     * @param ruleTypeNotList
+     */
+    public void setRuleTypeNotList(List<Integer> ruleTypeNotList){
+        this.ruleTypeNotList = ruleTypeNotList;
+    }
+
+
+    /**
+     * 鑾峰彇 寮€濮� 鍒涘缓鏃堕棿
+     * @return createTimeStart
+     */
+    public String getCreateTimeStart(){
+        return this.createTimeStart;
+    }
+
+    /**
+     * 璁剧疆 寮€濮� 鍒涘缓鏃堕棿
+     * @param createTimeStart
+     */
+    public void setCreateTimeStart(String createTimeStart){
+        this.createTimeStart = createTimeStart;
+    }
+
+    /**
+     * 鑾峰彇 缁撴潫 鍒涘缓鏃堕棿
+     * @return createTimeEnd
+     */
+    public String getCreateTimeEnd(){
+        return this.createTimeEnd;
+    }
+
+    /**
+     * 璁剧疆 缁撴潫 鍒涘缓鏃堕棿
+     * @param createTimeEnd
+     */
+    public void setCreateTimeEnd(String createTimeEnd){
+        this.createTimeEnd = createTimeEnd;
+    }
+
+    /**
+     * 鑾峰彇 寮€濮� 鍒涘缓鐢ㄦ埛
+     * @return createUserIdStart
+     */
+    public Long getCreateUserIdStart(){
+        return this.createUserIdStart;
+    }
+
+    /**
+     * 璁剧疆 寮€濮� 鍒涘缓鐢ㄦ埛
+     * @param createUserIdStart
+     */
+    public void setCreateUserIdStart(Long createUserIdStart){
+        this.createUserIdStart = createUserIdStart;
+    }
+
+    /**
+     * 鑾峰彇 缁撴潫 鍒涘缓鐢ㄦ埛
+     * @return $createUserIdEnd
+     */
+    public Long getCreateUserIdEnd(){
+        return this.createUserIdEnd;
+    }
+
+    /**
+     * 璁剧疆 缁撴潫 鍒涘缓鐢ㄦ埛
+     * @param createUserIdEnd
+     */
+    public void setCreateUserIdEnd(Long createUserIdEnd){
+        this.createUserIdEnd = createUserIdEnd;
+    }
+
+    /**
+     * 鑾峰彇 澧炲姞 鍒涘缓鐢ㄦ埛
+     * @return createUserIdIncrement
+     */
+    public Long getCreateUserIdIncrement(){
+        return this.createUserIdIncrement;
+    }
+
+    /**
+     * 璁剧疆 澧炲姞 鍒涘缓鐢ㄦ埛
+     * @param createUserIdIncrement
+     */
+    public void setCreateUserIdIncrement(Long createUserIdIncrement){
+        this.createUserIdIncrement = createUserIdIncrement;
+    }
+
+    /**
+     * 鑾峰彇 鍒涘缓鐢ㄦ埛
+     * @return createUserIdList
+     */
+    public List<Long> getCreateUserIdList(){
+        return this.createUserIdList;
+    }
+
+    /**
+     * 璁剧疆 鍒涘缓鐢ㄦ埛
+     * @param createUserIdList
+     */
+    public void setCreateUserIdList(List<Long> createUserIdList){
+        this.createUserIdList = createUserIdList;
+    }
+
+    /**
+     * 鑾峰彇 鍒涘缓鐢ㄦ埛
+     * @return createUserIdNotList
+     */
+    public List<Long> getCreateUserIdNotList(){
+        return this.createUserIdNotList;
+    }
+
+    /**
+     * 璁剧疆 鍒涘缓鐢ㄦ埛
+     * @param createUserIdNotList
+     */
+    public void setCreateUserIdNotList(List<Long> createUserIdNotList){
+        this.createUserIdNotList = createUserIdNotList;
+    }
+
+
+    /**
+     * 鑾峰彇 寮€濮� 鏇存柊鐢ㄦ埛
+     * @return updateUserIdStart
+     */
+    public Long getUpdateUserIdStart(){
+        return this.updateUserIdStart;
+    }
+
+    /**
+     * 璁剧疆 寮€濮� 鏇存柊鐢ㄦ埛
+     * @param updateUserIdStart
+     */
+    public void setUpdateUserIdStart(Long updateUserIdStart){
+        this.updateUserIdStart = updateUserIdStart;
+    }
+
+    /**
+     * 鑾峰彇 缁撴潫 鏇存柊鐢ㄦ埛
+     * @return $updateUserIdEnd
+     */
+    public Long getUpdateUserIdEnd(){
+        return this.updateUserIdEnd;
+    }
+
+    /**
+     * 璁剧疆 缁撴潫 鏇存柊鐢ㄦ埛
+     * @param updateUserIdEnd
+     */
+    public void setUpdateUserIdEnd(Long updateUserIdEnd){
+        this.updateUserIdEnd = updateUserIdEnd;
+    }
+
+    /**
+     * 鑾峰彇 澧炲姞 鏇存柊鐢ㄦ埛
+     * @return updateUserIdIncrement
+     */
+    public Long getUpdateUserIdIncrement(){
+        return this.updateUserIdIncrement;
+    }
+
+    /**
+     * 璁剧疆 澧炲姞 鏇存柊鐢ㄦ埛
+     * @param updateUserIdIncrement
+     */
+    public void setUpdateUserIdIncrement(Long updateUserIdIncrement){
+        this.updateUserIdIncrement = updateUserIdIncrement;
+    }
+
+    /**
+     * 鑾峰彇 鏇存柊鐢ㄦ埛
+     * @return updateUserIdList
+     */
+    public List<Long> getUpdateUserIdList(){
+        return this.updateUserIdList;
+    }
+
+    /**
+     * 璁剧疆 鏇存柊鐢ㄦ埛
+     * @param updateUserIdList
+     */
+    public void setUpdateUserIdList(List<Long> updateUserIdList){
+        this.updateUserIdList = updateUserIdList;
+    }
+
+    /**
+     * 鑾峰彇 鏇存柊鐢ㄦ埛
+     * @return updateUserIdNotList
+     */
+    public List<Long> getUpdateUserIdNotList(){
+        return this.updateUserIdNotList;
+    }
+
+    /**
+     * 璁剧疆 鏇存柊鐢ㄦ埛
+     * @param updateUserIdNotList
+     */
+    public void setUpdateUserIdNotList(List<Long> updateUserIdNotList){
+        this.updateUserIdNotList = updateUserIdNotList;
+    }
+
+
+    /**
+     * 鑾峰彇 寮€濮� 鏇存柊鏃堕棿
+     * @return updateTimeStart
+     */
+    public String getUpdateTimeStart(){
+        return this.updateTimeStart;
+    }
+
+    /**
+     * 璁剧疆 寮€濮� 鏇存柊鏃堕棿
+     * @param updateTimeStart
+     */
+    public void setUpdateTimeStart(String updateTimeStart){
+        this.updateTimeStart = updateTimeStart;
+    }
+
+    /**
+     * 鑾峰彇 缁撴潫 鏇存柊鏃堕棿
+     * @return updateTimeEnd
+     */
+    public String getUpdateTimeEnd(){
+        return this.updateTimeEnd;
+    }
+
+    /**
+     * 璁剧疆 缁撴潫 鏇存柊鏃堕棿
+     * @param updateTimeEnd
+     */
+    public void setUpdateTimeEnd(String updateTimeEnd){
+        this.updateTimeEnd = updateTimeEnd;
+    }
+
+    /**
+     * 鑾峰彇 瑙掕壊鍚嶇О
+     * @return roleNameList
+     */
+    public List<String> getRoleNameList(){
+        return this.roleNameList;
+    }
+
+    /**
+     * 璁剧疆 瑙掕壊鍚嶇О
+     * @param roleNameList
+     */
+    public void setRoleNameList(List<String> roleNameList){
+        this.roleNameList = roleNameList;
+    }
+
+    /**
+     * 鑾峰彇 瑙掕壊鍚嶇О
+     * @return roleNameNotList
+     */
+    public List<String> getRoleNameNotList(){
+        return this.roleNameNotList;
+    }
+
+    /**
+     * 璁剧疆 瑙掕壊鍚嶇О
+     * @param roleNameNotList
+     */
+    public void setRoleNameNotList(List<String> roleNameNotList){
+        this.roleNameNotList = roleNameNotList;
+    }
+
+    /**
+     * 鑾峰彇 璧勬簮鍚嶇О
+     * @return resourceNameList
+     */
+    public List<String> getResourceNameList(){
+        return this.resourceNameList;
+    }
+
+    /**
+     * 璁剧疆 璧勬簮鍚嶇О
+     * @param resourceNameList
+     */
+    public void setResourceNameList(List<String> resourceNameList){
+        this.resourceNameList = resourceNameList;
+    }
+
+    /**
+     * 鑾峰彇 璧勬簮鍚嶇О
+     * @return resourceNameNotList
+     */
+    public List<String> getResourceNameNotList(){
+        return this.resourceNameNotList;
+    }
+
+    /**
+     * 璁剧疆 璧勬簮鍚嶇О
+     * @param resourceNameNotList
+     */
+    public void setResourceNameNotList(List<String> resourceNameNotList){
+        this.resourceNameNotList = resourceNameNotList;
+    }
+
+    /**
+     * 璁剧疆  搴忓彿锛屼富閿紝鑷闀�
+     * @param id
+     */
+    public DimensionResourceRuleQuery id(Long id){
+        setId(id);
+        return this;
+    }
+
+    /**
+     * 璁剧疆 寮€濮� 搴忓彿锛屼富閿紝鑷闀�
+     * @param idStart
+     */
+    public DimensionResourceRuleQuery idStart(Long idStart){
+        this.idStart = idStart;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 缁撴潫 搴忓彿锛屼富閿紝鑷闀�
+     * @param idEnd
+     */
+    public DimensionResourceRuleQuery idEnd(Long idEnd){
+        this.idEnd = idEnd;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 澧炲姞 搴忓彿锛屼富閿紝鑷闀�
+     * @param idIncrement
+     */
+    public DimensionResourceRuleQuery idIncrement(Long idIncrement){
+        this.idIncrement = idIncrement;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 搴忓彿锛屼富閿紝鑷闀�
+     * @param idList
+     */
+    public DimensionResourceRuleQuery idList(List<Long> idList){
+        this.idList = idList;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 搴忓彿锛屼富閿紝鑷闀�
+     * @param idNotList
+     */
+    public DimensionResourceRuleQuery idNotList(List<Long> idNotList){
+        this.idNotList = idNotList;
+        return this;
+    }
+
+    /**
+     * 璁剧疆  瑙掕壊ID
+     * @param roleId
+     */
+    public DimensionResourceRuleQuery roleId(Long roleId){
+        setRoleId(roleId);
+        return this;
+    }
+
+    /**
+     * 璁剧疆 寮€濮� 瑙掕壊ID
+     * @param roleIdStart
+     */
+    public DimensionResourceRuleQuery roleIdStart(Long roleIdStart){
+        this.roleIdStart = roleIdStart;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 缁撴潫 瑙掕壊ID
+     * @param roleIdEnd
+     */
+    public DimensionResourceRuleQuery roleIdEnd(Long roleIdEnd){
+        this.roleIdEnd = roleIdEnd;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 澧炲姞 瑙掕壊ID
+     * @param roleIdIncrement
+     */
+    public DimensionResourceRuleQuery roleIdIncrement(Long roleIdIncrement){
+        this.roleIdIncrement = roleIdIncrement;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 瑙掕壊ID
+     * @param roleIdList
+     */
+    public DimensionResourceRuleQuery roleIdList(List<Long> roleIdList){
+        this.roleIdList = roleIdList;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 瑙掕壊ID
+     * @param roleIdNotList
+     */
+    public DimensionResourceRuleQuery roleIdNotList(List<Long> roleIdNotList){
+        this.roleIdNotList = roleIdNotList;
+        return this;
+    }
+
+    /**
+     * 璁剧疆  璧勬簮ID
+     * @param resourceId
+     */
+    public DimensionResourceRuleQuery resourceId(Long resourceId){
+        setResourceId(resourceId);
+        return this;
+    }
+
+    /**
+     * 璁剧疆 寮€濮� 璧勬簮ID
+     * @param resourceIdStart
+     */
+    public DimensionResourceRuleQuery resourceIdStart(Long resourceIdStart){
+        this.resourceIdStart = resourceIdStart;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 缁撴潫 璧勬簮ID
+     * @param resourceIdEnd
+     */
+    public DimensionResourceRuleQuery resourceIdEnd(Long resourceIdEnd){
+        this.resourceIdEnd = resourceIdEnd;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 澧炲姞 璧勬簮ID
+     * @param resourceIdIncrement
+     */
+    public DimensionResourceRuleQuery resourceIdIncrement(Long resourceIdIncrement){
+        this.resourceIdIncrement = resourceIdIncrement;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 璧勬簮ID
+     * @param resourceIdList
+     */
+    public DimensionResourceRuleQuery resourceIdList(List<Long> resourceIdList){
+        this.resourceIdList = resourceIdList;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 璧勬簮ID
+     * @param resourceIdNotList
+     */
+    public DimensionResourceRuleQuery resourceIdNotList(List<Long> resourceIdNotList){
+        this.resourceIdNotList = resourceIdNotList;
+        return this;
+    }
+
+
+    /**
+     * 璁剧疆 瑙勫垯缂栫爜
+     * @param ruleCode
+     */
+    public DimensionResourceRuleQuery ruleCode(String ruleCode){
+        setRuleCode(ruleCode);
+        return this;
+    }
+
+    /**
+     * 璁剧疆 瑙勫垯缂栫爜
+     * @param ruleCodeList
+     */
+    public DimensionResourceRuleQuery ruleCodeList(List<String> ruleCodeList){
+        this.ruleCodeList = ruleCodeList;
+        return this;
+    }
+
+
+    /**
+     * 璁剧疆 瑙勫垯鍚嶇О
+     * @param ruleName
+     */
+    public DimensionResourceRuleQuery ruleName(String ruleName){
+        setRuleName(ruleName);
+        return this;
+    }
+
+    /**
+     * 璁剧疆 瑙勫垯鍚嶇О
+     * @param ruleNameList
+     */
+    public DimensionResourceRuleQuery ruleNameList(List<String> ruleNameList){
+        this.ruleNameList = ruleNameList;
+        return this;
+    }
+
+
+    /**
+     * 璁剧疆 瑙勫垯鏉′欢(IN.灞炰簬,<.灏忎簬,>.澶т簬,=.绛変簬,!=.涓嶇瓑浜�,>=.澶т簬绛変簬,<=.灏忎簬绛変簬,like %.宸︽ā绯�,like %.鍙虫ā绯�)
+     * @param ruleCondition
+     */
+    public DimensionResourceRuleQuery ruleCondition(String ruleCondition){
+        setRuleCondition(ruleCondition);
+        return this;
+    }
+
+    /**
+     * 璁剧疆 瑙勫垯鏉′欢(IN.灞炰簬,<.灏忎簬,>.澶т簬,=.绛変簬,!=.涓嶇瓑浜�,>=.澶т簬绛変簬,<=.灏忎簬绛変簬,like %.宸︽ā绯�,like %.鍙虫ā绯�)
+     * @param ruleConditionList
+     */
+    public DimensionResourceRuleQuery ruleConditionList(List<String> ruleConditionList){
+        this.ruleConditionList = ruleConditionList;
+        return this;
+    }
+
+
+    /**
+     * 璁剧疆 瑙勫垯鍊�,鍥哄畾鍊兼垨鑰呯郴缁熷彉閲�
+     * @param ruleValue
+     */
+    public DimensionResourceRuleQuery ruleValue(String ruleValue){
+        setRuleValue(ruleValue);
+        return this;
+    }
+
+    /**
+     * 璁剧疆 瑙勫垯鍊�,鍥哄畾鍊兼垨鑰呯郴缁熷彉閲�
+     * @param ruleValueList
+     */
+    public DimensionResourceRuleQuery ruleValueList(List<String> ruleValueList){
+        this.ruleValueList = ruleValueList;
+        return this;
+    }
+
+    /**
+     * 璁剧疆  瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+     * @param ruleType
+     */
+    public DimensionResourceRuleQuery ruleType(Integer ruleType){
+        setRuleType(ruleType);
+        return this;
+    }
+
+    /**
+     * 璁剧疆 寮€濮� 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+     * @param ruleTypeStart
+     */
+    public DimensionResourceRuleQuery ruleTypeStart(Integer ruleTypeStart){
+        this.ruleTypeStart = ruleTypeStart;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 缁撴潫 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+     * @param ruleTypeEnd
+     */
+    public DimensionResourceRuleQuery ruleTypeEnd(Integer ruleTypeEnd){
+        this.ruleTypeEnd = ruleTypeEnd;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 澧炲姞 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+     * @param ruleTypeIncrement
+     */
+    public DimensionResourceRuleQuery ruleTypeIncrement(Integer ruleTypeIncrement){
+        this.ruleTypeIncrement = ruleTypeIncrement;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+     * @param ruleTypeList
+     */
+    public DimensionResourceRuleQuery ruleTypeList(List<Integer> ruleTypeList){
+        this.ruleTypeList = ruleTypeList;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 瑙勫垯鍊肩被鍨�(1.鍥哄畾鍊�,2.绯荤粺涓婁笅闂彉閲�)
+     * @param ruleTypeNotList
+     */
+    public DimensionResourceRuleQuery ruleTypeNotList(List<Integer> ruleTypeNotList){
+        this.ruleTypeNotList = ruleTypeNotList;
+        return this;
+    }
+
+
+    /**
+     * 璁剧疆  鍒涘缓鐢ㄦ埛
+     * @param createUserId
+     */
+    public DimensionResourceRuleQuery createUserId(Long createUserId){
+        setCreateUserId(createUserId);
+        return this;
+    }
+
+    /**
+     * 璁剧疆 寮€濮� 鍒涘缓鐢ㄦ埛
+     * @param createUserIdStart
+     */
+    public DimensionResourceRuleQuery createUserIdStart(Long createUserIdStart){
+        this.createUserIdStart = createUserIdStart;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 缁撴潫 鍒涘缓鐢ㄦ埛
+     * @param createUserIdEnd
+     */
+    public DimensionResourceRuleQuery createUserIdEnd(Long createUserIdEnd){
+        this.createUserIdEnd = createUserIdEnd;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 澧炲姞 鍒涘缓鐢ㄦ埛
+     * @param createUserIdIncrement
+     */
+    public DimensionResourceRuleQuery createUserIdIncrement(Long createUserIdIncrement){
+        this.createUserIdIncrement = createUserIdIncrement;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 鍒涘缓鐢ㄦ埛
+     * @param createUserIdList
+     */
+    public DimensionResourceRuleQuery createUserIdList(List<Long> createUserIdList){
+        this.createUserIdList = createUserIdList;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 鍒涘缓鐢ㄦ埛
+     * @param createUserIdNotList
+     */
+    public DimensionResourceRuleQuery createUserIdNotList(List<Long> createUserIdNotList){
+        this.createUserIdNotList = createUserIdNotList;
+        return this;
+    }
+
+    /**
+     * 璁剧疆  鏇存柊鐢ㄦ埛
+     * @param updateUserId
+     */
+    public DimensionResourceRuleQuery updateUserId(Long updateUserId){
+        setUpdateUserId(updateUserId);
+        return this;
+    }
+
+    /**
+     * 璁剧疆 寮€濮� 鏇存柊鐢ㄦ埛
+     * @param updateUserIdStart
+     */
+    public DimensionResourceRuleQuery updateUserIdStart(Long updateUserIdStart){
+        this.updateUserIdStart = updateUserIdStart;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 缁撴潫 鏇存柊鐢ㄦ埛
+     * @param updateUserIdEnd
+     */
+    public DimensionResourceRuleQuery updateUserIdEnd(Long updateUserIdEnd){
+        this.updateUserIdEnd = updateUserIdEnd;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 澧炲姞 鏇存柊鐢ㄦ埛
+     * @param updateUserIdIncrement
+     */
+    public DimensionResourceRuleQuery updateUserIdIncrement(Long updateUserIdIncrement){
+        this.updateUserIdIncrement = updateUserIdIncrement;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 鏇存柊鐢ㄦ埛
+     * @param updateUserIdList
+     */
+    public DimensionResourceRuleQuery updateUserIdList(List<Long> updateUserIdList){
+        this.updateUserIdList = updateUserIdList;
+        return this;
+    }
+
+    /**
+     * 璁剧疆 鏇存柊鐢ㄦ埛
+     * @param updateUserIdNotList
+     */
+    public DimensionResourceRuleQuery updateUserIdNotList(List<Long> updateUserIdNotList){
+        this.updateUserIdNotList = updateUserIdNotList;
+        return this;
+    }
+
+
+
+    /**
+     * 璁剧疆 瑙掕壊鍚嶇О
+     * @param roleName
+     */
+    public DimensionResourceRuleQuery roleName(String roleName){
+        setRoleName(roleName);
+        return this;
+    }
+
+    /**
+     * 璁剧疆 瑙掕壊鍚嶇О
+     * @param roleNameList
+     */
+    public DimensionResourceRuleQuery roleNameList(List<String> roleNameList){
+        this.roleNameList = roleNameList;
+        return this;
+    }
+
+
+    /**
+     * 璁剧疆 璧勬簮鍚嶇О
+     * @param resourceName
+     */
+    public DimensionResourceRuleQuery resourceName(String resourceName){
+        setResourceName(resourceName);
+        return this;
+    }
+
+    /**
+     * 璁剧疆 璧勬簮鍚嶇О
+     * @param resourceNameList
+     */
+    public DimensionResourceRuleQuery resourceNameList(List<String> resourceNameList){
+        this.resourceNameList = resourceNameList;
+        return this;
+    }
+
+    /**
+     * 鑾峰彇 OR鏉′欢闆嗗悎锛屽垪琛ㄩ」涔嬮棿鏄疧R锛岄」鍐呭涔嬮棿鏄疉ND锛屽锛�(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
+     * @return orConditionList
+     */
+    public List<DimensionResourceRuleQuery> getOrConditionList(){
+        return this.orConditionList;
+    }
+
+    /**
+     * 璁剧疆 OR鏉′欢闆嗗悎锛屽垪琛ㄩ」涔嬮棿鏄疧R锛岄」鍐呭涔嬮棿鏄疉ND锛屽锛�(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
+     * @param orConditionList
+     */
+    public void setOrConditionList(List<DimensionResourceRuleQuery> orConditionList){
+        this.orConditionList = orConditionList;
+    }
+
+    /**
+     * 鑾峰彇 AND鏉′欢闆嗗悎锛屽垪琛ㄩ」涔嬮棿鏄疉ND锛岄」鍐呭涔嬮棿鏄疧R锛屽锛�(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
+     * @return andConditionList
+     */
+    public List<DimensionResourceRuleQuery> getAndConditionList(){
+        return this.andConditionList;
+    }
+
+    /**
+     * 璁剧疆 AND鏉′欢闆嗗悎锛屽垪琛ㄩ」涔嬮棿鏄疉ND锛岄」鍐呭涔嬮棿鏄疧R锛屽锛�(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
+     * @param andConditionList
+     */
+    public void setAndConditionList(List<DimensionResourceRuleQuery> andConditionList){
+        this.andConditionList = andConditionList;
+    }
+
+}
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dimension/model/vo/DimensionResourceRuleVo.java b/base-manager/src/main/java/com/mortals/xhx/module/dimension/model/vo/DimensionResourceRuleVo.java
new file mode 100644
index 0000000000000000000000000000000000000000..c020aa090d48fe5474575e05ad38e36e77855eff
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dimension/model/vo/DimensionResourceRuleVo.java
@@ -0,0 +1,21 @@
+package com.mortals.xhx.module.dimension.model.vo;
+
+import com.mortals.framework.model.BaseEntityLong;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+* 瑙掕壊璧勬簮缁村害瑙勫垯瑙嗗浘瀵硅薄
+*
+* @author zxfei
+* @date 2024-05-16
+*/
+@Data
+public class DimensionResourceRuleVo extends BaseEntityLong {
+
+    /** 搴忓彿锛屼富閿紝鑷闀垮垪琛� */
+    private List <Long> idList;
+
+
+}
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dimension/model/vo/DimensionVo.java b/base-manager/src/main/java/com/mortals/xhx/module/dimension/model/vo/DimensionVo.java
new file mode 100644
index 0000000000000000000000000000000000000000..ac3ba43fc690333d1c72d4a1a4f2df2f80510088
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dimension/model/vo/DimensionVo.java
@@ -0,0 +1,21 @@
+package com.mortals.xhx.module.dimension.model.vo;
+
+import com.mortals.framework.model.BaseEntityLong;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+* 鎺堟潈缁村害瑙嗗浘瀵硅薄
+*
+* @author zxfei
+* @date 2024-05-16
+*/
+@Data
+public class DimensionVo extends BaseEntityLong {
+
+    /** 搴忓彿锛屼富閿紝鑷闀垮垪琛� */
+    private List <Long> idList;
+
+
+}
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dimension/service/DimensionResourceRuleService.java b/base-manager/src/main/java/com/mortals/xhx/module/dimension/service/DimensionResourceRuleService.java
new file mode 100644
index 0000000000000000000000000000000000000000..94dbec7f47097daec5a14342ae9f335be5597ab2
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dimension/service/DimensionResourceRuleService.java
@@ -0,0 +1,28 @@
+package com.mortals.xhx.module.dimension.service;
+
+import com.mortals.framework.service.ICRUDService;
+import com.mortals.xhx.module.dimension.dao.DimensionResourceRuleDao;
+import com.mortals.xhx.module.dimension.model.DimensionResourceRuleEntity;
+
+import java.util.List;
+
+/**
+* DimensionResourceRuleService
+*
+* 瑙掕壊璧勬簮缁村害瑙勫垯 service鎺ュ彛
+*
+* @author zxfei
+* @date 2024-05-16
+*/
+public interface DimensionResourceRuleService extends ICRUDService<DimensionResourceRuleEntity,Long>{
+
+    DimensionResourceRuleDao getDao();
+
+    /**
+     * 鏍规嵁褰撳墠controller璺敱鑾峰彇鐢ㄦ埛瑙掕壊璧勬簮缁村害瑙勫垯
+     * @param userId
+     * @param route 褰撳墠controller璺敱
+     * @return
+     */
+    List<DimensionResourceRuleEntity> getRoleComponentRule(Long userId,String route);
+}
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dimension/service/DimensionService.java b/base-manager/src/main/java/com/mortals/xhx/module/dimension/service/DimensionService.java
new file mode 100644
index 0000000000000000000000000000000000000000..9543ee626307f58a2fc512c1df3d6019b768d949
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dimension/service/DimensionService.java
@@ -0,0 +1,17 @@
+package com.mortals.xhx.module.dimension.service;
+
+import com.mortals.framework.service.ICRUDService;
+import com.mortals.xhx.module.dimension.dao.DimensionDao;
+import com.mortals.xhx.module.dimension.model.DimensionEntity;
+/**
+* DimensionService
+*
+* 鎺堟潈缁村害 service鎺ュ彛
+*
+* @author zxfei
+* @date 2024-05-16
+*/
+public interface DimensionService extends ICRUDService<DimensionEntity,Long>{
+
+    DimensionDao getDao();
+}
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dimension/service/impl/DimensionResourceRuleServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/dimension/service/impl/DimensionResourceRuleServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..957479801c600eb48913b03369776c3105c2405a
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dimension/service/impl/DimensionResourceRuleServiceImpl.java
@@ -0,0 +1,33 @@
+package com.mortals.xhx.module.dimension.service.impl;
+
+import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
+import com.mortals.xhx.module.dimension.dao.DimensionResourceRuleDao;
+import com.mortals.xhx.module.dimension.model.DimensionResourceRuleEntity;
+import com.mortals.xhx.module.dimension.service.DimensionResourceRuleService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+* DimensionResourceRuleService
+* 瑙掕壊璧勬簮缁村害瑙勫垯 service瀹炵幇
+*
+* @author zxfei
+* @date 2024-05-16
+*/
+@Service("dimensionResourceRuleService")
+@Slf4j
+public class DimensionResourceRuleServiceImpl extends AbstractCRUDServiceImpl<DimensionResourceRuleDao, DimensionResourceRuleEntity, Long> implements DimensionResourceRuleService {
+
+    /**
+     * @param userId
+     * @param route  褰撳墠controller璺敱
+     * @return
+     */
+    @Override
+    public List<DimensionResourceRuleEntity> getRoleComponentRule(Long userId, String route) {
+         return this.getDao().getRoleComponentRule(userId, route);
+
+    }
+}
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dimension/service/impl/DimensionServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/dimension/service/impl/DimensionServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..effd1f253291496a8140c928b13ab4aa1fa15fa0
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dimension/service/impl/DimensionServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mortals.xhx.module.dimension.service.impl;
+
+import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
+import com.mortals.xhx.module.dimension.dao.DimensionDao;
+import com.mortals.xhx.module.dimension.model.DimensionEntity;
+import com.mortals.xhx.module.dimension.service.DimensionService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+/**
+* DimensionService
+* 鎺堟潈缁村害 service瀹炵幇
+*
+* @author zxfei
+* @date 2024-05-16
+*/
+@Service("dimensionService")
+@Slf4j
+public class DimensionServiceImpl extends AbstractCRUDServiceImpl<DimensionDao, DimensionEntity, Long> implements DimensionService {
+    
+}
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dimension/web/DimensionController.java b/base-manager/src/main/java/com/mortals/xhx/module/dimension/web/DimensionController.java
new file mode 100644
index 0000000000000000000000000000000000000000..0b12930edd3c0f4936c036dd5c70d9d11e0e5538
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dimension/web/DimensionController.java
@@ -0,0 +1,40 @@
+package com.mortals.xhx.module.dimension.web;
+
+import com.mortals.framework.model.Context;
+import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
+import com.mortals.xhx.base.system.param.service.ParamService;
+import com.mortals.xhx.common.code.DimensionTypeEnum;
+import com.mortals.xhx.module.dimension.model.DimensionEntity;
+import com.mortals.xhx.module.dimension.service.DimensionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+*
+* 鎺堟潈缁村害
+*
+* @author zxfei
+* @date 2024-05-16
+*/
+@RestController
+@RequestMapping("dimension")
+public class DimensionController extends BaseCRUDJsonBodyMappingController<DimensionService,DimensionEntity,Long> {
+
+    @Autowired
+    private ParamService paramService;
+
+    public DimensionController(){
+        super.setModuleDesc( "鎺堟潈缁村害");
+    }
+
+    @Override
+    protected void init(Map<String, Object> model, Context context) {
+                this.addDict(model, "dimensionType", DimensionTypeEnum.getEnumMap());
+        super.init(model, context);
+    }
+
+
+}
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dimension/web/DimensionResourceRuleController.java b/base-manager/src/main/java/com/mortals/xhx/module/dimension/web/DimensionResourceRuleController.java
new file mode 100644
index 0000000000000000000000000000000000000000..56de2b65871fb7482ed866ef41804fa98f4fdcb3
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dimension/web/DimensionResourceRuleController.java
@@ -0,0 +1,42 @@
+package com.mortals.xhx.module.dimension.web;
+
+import com.mortals.framework.model.Context;
+import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
+import com.mortals.xhx.base.system.param.service.ParamService;
+import com.mortals.xhx.common.code.RuleConditionEnum;
+import com.mortals.xhx.common.code.RuleTypeEnum;
+import com.mortals.xhx.module.dimension.model.DimensionResourceRuleEntity;
+import com.mortals.xhx.module.dimension.service.DimensionResourceRuleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+*
+* 瑙掕壊璧勬簮缁村害瑙勫垯
+*
+* @author zxfei
+* @date 2024-05-16
+*/
+@RestController
+@RequestMapping("dimension/resource/rule")
+public class DimensionResourceRuleController extends BaseCRUDJsonBodyMappingController<DimensionResourceRuleService,DimensionResourceRuleEntity,Long> {
+
+    @Autowired
+    private ParamService paramService;
+
+    public DimensionResourceRuleController(){
+        super.setModuleDesc( "瑙掕壊璧勬簮缁村害瑙勫垯");
+    }
+
+    @Override
+    protected void init(Map<String, Object> model, Context context) {
+                this.addDict(model, "ruleCondition", RuleConditionEnum.getEnumMap());
+                this.addDict(model, "ruleType", RuleTypeEnum.getEnumMap());
+        super.init(model, context);
+    }
+
+
+}
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/holiday/web/HolidayController.java b/base-manager/src/main/java/com/mortals/xhx/module/holiday/web/HolidayController.java
index 401fc30df3473dc95550e8a11634ce45bbaec044..6fb65842587753e646d425cb8ebebb6d57b70868 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/holiday/web/HolidayController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/holiday/web/HolidayController.java
@@ -2,7 +2,6 @@ package com.mortals.xhx.module.holiday.web;
 
 import com.mortals.framework.model.Context;
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
-import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
 import com.mortals.xhx.base.system.param.service.ParamService;
 import com.mortals.xhx.module.holiday.model.HolidayEntity;
 import com.mortals.xhx.module.holiday.service.HolidayService;
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/model/vo/MatterVo.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/model/vo/MatterVo.java
index 62de40f66c4c4462126b66ea0c0143882756e101..94d15f4b454bf2a88f3279d306f1f247c187632e 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/matter/model/vo/MatterVo.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/model/vo/MatterVo.java
@@ -21,4 +21,7 @@ public class MatterVo extends BaseEntityLong {
      */
     private List <String> eventTypeShowNotList;
 
+
+
+
 }
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/service/MatterExtService.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/service/MatterExtService.java
index 18576974799053d40c38efd64b91ea7b5c27276a..689fb54d64a66fb01430c42cc24a31dc4f66cda9 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/matter/service/MatterExtService.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/service/MatterExtService.java
@@ -23,4 +23,12 @@ public interface MatterExtService extends ICRUDService<MatterExtEntity,Long>{
 
     void deleteByMatterId(Long matterId, Context context);
 
+    /**
+     * 鍚屾鍒犻櫎 宸茬粡娌℃湁鐨勭珯鐐逛簨椤�
+     * @param siteEntity
+     * @param context
+     * @return
+     */
+    Rest<String> syncDelMatterBySiteId(SiteEntity siteEntity, Context context);
+
 }
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/service/MatterService.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/service/MatterService.java
index dbca28dde1c02f9e6dca9d0005550c467c5cb01a..98876c99193670fec095e11ceafe024fdb465765 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/matter/service/MatterService.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/service/MatterService.java
@@ -27,6 +27,7 @@ public interface MatterService extends ICRUDService<MatterEntity, Long> {
 
 
     MatterDao getDao();
+
     /**
      * 娣诲姞涓氬姟鍒扮珯鐐�
      *
@@ -66,6 +67,7 @@ public interface MatterService extends ICRUDService<MatterEntity, Long> {
 
     /**
      * 鏌ユ壘宸泦瀛愰」
+     *
      * @param matterQuery
      * @param pageInfo
      * @param context
@@ -75,4 +77,14 @@ public interface MatterService extends ICRUDService<MatterEntity, Long> {
     Result<MatterEntity> findSubList(MatterEntity matterQuery, PageInfo pageInfo, Context context) throws AppException;
 
     Result<MatterInfo> findMicroList(MatterQuery matterQuery, PageInfo pageInfo, Context context) throws AppException;
+
+    /**
+     * 鐢熸垚浜嬮」鏂囨湰
+     * @param context
+     * @return
+     */
+    Rest<Void> genMatterTxt(MatterQuery matterQuery,Context context);
+
+    Rest<Void> genMatterMarkdown(MatterQuery matterQuery,Context context);
+
 }
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterExtServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterExtServiceImpl.java
index b693d71a7a045a1010082b6d358e00f20824e629..62f8dbb74926736de5273e4a435ce2f8c858a732 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterExtServiceImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterExtServiceImpl.java
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
 import com.google.common.collect.Lists;
 import com.mortals.framework.ap.GlobalSysInfo;
 import com.mortals.framework.common.Rest;
+import com.mortals.framework.util.ThreadPool;
 import com.mortals.xhx.common.code.DxTypeEnum;
 import com.mortals.xhx.common.code.SourceEnum;
 import com.mortals.xhx.common.code.YesNoEnum;
@@ -18,10 +19,7 @@ import com.mortals.xhx.module.dept.service.DeptService;
 import com.mortals.xhx.module.matter.model.MatterEntity;
 import com.mortals.xhx.module.matter.model.MatterQuery;
 import com.mortals.xhx.module.matter.service.MatterService;
-import com.mortals.xhx.module.site.model.SiteEntity;
-import com.mortals.xhx.module.site.model.SiteMatterEntity;
-import com.mortals.xhx.module.site.model.SiteMatterQuery;
-import com.mortals.xhx.module.site.model.SiteQuery;
+import com.mortals.xhx.module.site.model.*;
 import com.mortals.xhx.module.site.service.SiteMatterService;
 import com.mortals.xhx.module.site.service.SiteService;
 import com.mortals.xhx.module.site.service.SiteThemeMatterService;
@@ -58,13 +56,11 @@ public class MatterExtServiceImpl extends AbstractCRUDServiceImpl<MatterExtDao,
     @Autowired
     private MatterService matterService;
     @Autowired
-    private SiteService siteService;
-    @Autowired
-    private SiteMatterService siteMatterService;
-    @Autowired
     private SiteThemeMatterService siteThemeMatterService;
     @Autowired
     private SiteThemeService siteThemeService;
+    @Autowired
+    private SiteMatterService siteMatterService;
 
 
     /**
@@ -76,30 +72,7 @@ public class MatterExtServiceImpl extends AbstractCRUDServiceImpl<MatterExtDao,
      */
     @Override
     public Rest<String> syncMatterBySiteId(SiteEntity siteEntity, Context context) {
-        AreaEntity areaEntity = areaService.getCache(siteEntity.getAreaCode());
-        List<DeptEntity> deptEntities = deptService.find(new DeptQuery().siteId(siteEntity.getId()).source(SourceEnum.鏀垮姟缃�.getValue()));
-        List<MatterEntity> govMatterList = deptEntities.parallelStream().flatMap(deptEntity -> {
-            HashMap<String, String> params = new HashMap<>();
-            params.put("areaCode", areaEntity.getAreaCode());
-            params.put("dxType", "6");
-            params.put("deptCode", deptEntity.getDeptNumber());
-            params.put("searchtext", "");
-            params.put("taskType", "");
-            List<MatterEntity> deptMatterList = this.getMatters(params, context);
-            return deptMatterList.stream();
-        }).collect(Collectors.toList());
-/*        for (DeptEntity deptEntity : deptEntities) {
-            HashMap<String, String> params = new HashMap<>();
-            params.put("areaCode", areaEntity.getAreaCode());
-            params.put("dxType", "6");
-            params.put("deptCode", deptEntity.getDeptNumber());
-            params.put("searchtext", "");
-            params.put("taskType", "");
-            List<MatterEntity> deptMatterList = this.getMatters(params, context);
-            if (!ObjectUtils.isEmpty(deptMatterList)) {
-                govMatterList.addAll(deptMatterList);
-            }
-        }*/
+        List<MatterEntity> govMatterList = getMatterEntities(siteEntity, context);
         //褰撳墠鏈湴鍖轰簨椤瑰叏閮ㄤ簨椤�
         log.info("璁$畻宸泦");
         MatterQuery matterQuery = new MatterQuery();
@@ -128,17 +101,37 @@ public class MatterExtServiceImpl extends AbstractCRUDServiceImpl<MatterExtDao,
         }
         log.info("寮€濮嬫洿鏂颁簨椤硅缁嗭紒");
         for (MatterEntity matterEntity : matterList) {
-            Rest<String> rest = matterService.buildMatterDetail(matterEntity, null);
-            if (rest.getCode() == YesNoEnum.YES.getValue()) {
-                // log.info("鏇存柊璇︾粏浜嬮」==>{},id===>{},localVersion===>{}", matterEntity.getMatterName(),matterEntity.getId(),matterEntity.getMatterEdition());
-                //matterEntity.setUrl(null);
-                matterEntity.setUpdateTime(new Date());
-                matterService.update(matterEntity, null);
-            }
+            Runnable runnable = new Runnable() {
+                @Override
+                public void run() {
+                    Rest<String> rest = matterService.buildMatterDetail(matterEntity, null);
+                    if (rest.getCode() == YesNoEnum.YES.getValue()) {
+                        matterEntity.setUpdateTime(new Date());
+                        matterService.update(matterEntity, null);
+                    }
+                }
+            };
+            ThreadPool.getInstance().execute(runnable);
         }
         return Rest.ok();
     }
 
+    private List<MatterEntity> getMatterEntities(SiteEntity siteEntity, Context context) {
+        AreaEntity areaEntity = areaService.getCache(siteEntity.getAreaCode());
+        List<DeptEntity> deptEntities = deptService.find(new DeptQuery().siteId(siteEntity.getId()).source(SourceEnum.鏀垮姟缃�.getValue()));
+        List<MatterEntity> govMatterList = deptEntities.parallelStream().flatMap(deptEntity -> {
+            HashMap<String, String> params = new HashMap<>();
+            params.put("areaCode", areaEntity.getAreaCode());
+            params.put("dxType", "6");
+            params.put("deptCode", deptEntity.getDeptNumber());
+            params.put("searchtext", "");
+            params.put("taskType", "");
+            List<MatterEntity> deptMatterList = this.getMatters(params, context);
+            return deptMatterList.stream();
+        }).collect(Collectors.toList());
+        return govMatterList;
+    }
+
     /**
      * 鍚屾绔欑偣涓婚浜嬮」
      *
@@ -191,7 +184,6 @@ public class MatterExtServiceImpl extends AbstractCRUDServiceImpl<MatterExtDao,
         return firstList.parallelStream().filter(item -> !secondSet.contains(item.getMatterNo())).collect(Collectors.toList());
     }
 
-
     private List<MatterEntity> getMatters(HashMap<String, String> params, Context context) {
         String url = GlobalSysInfo.getParamValue(Constant.GOV_MATTER_PAGELIST_URL, "http://www.sczwfw.gov.cn/jiq/interface/item/tags");
         Rest<Map<String, Integer>> restStat = MatterHtmlParseUtil.statSiteMatterCount(params, url);
@@ -234,5 +226,52 @@ public class MatterExtServiceImpl extends AbstractCRUDServiceImpl<MatterExtDao,
         this.dao.delete(condition);
     }
 
+    /**
+     * @param siteEntity
+     * @param context
+     * @return
+     */
+    @Override
+    public Rest<String> syncDelMatterBySiteId(SiteEntity siteEntity, Context context) {
+        //
+        List<MatterEntity> govMatterList = getMatterEntities(siteEntity, context);
+
+        log.info("璁$畻宸泦");
+        MatterQuery matterQuery = new MatterQuery();
+        matterQuery.setAreaCode(siteEntity.getAreaCode());
+        matterQuery.setSource(SourceEnum.鏀垮姟缃�.getValue());
+        //鏈湴浜嬮」
+        List<MatterEntity> matterList = matterService.getDao().getMatterListByAreaCode(matterQuery);
+        log.info("鏈湴浜嬮」鎬绘暟锛歿}", matterList.size());
+        //鏀垮姟缃戝瓨鍦╯et
+        Set<String> matterExistSet = govMatterList.parallelStream().map(i -> i.getMatterNo()).collect(Collectors.toSet());
+        List<MatterEntity> delList = this.subListSet(matterList, matterExistSet);
+        log.info("鎶撳彇浜嬮」鎬绘暟锛歿} ,闇€瑕佸垹闄や簨椤规暟閲忥細{}", govMatterList.size(), delList.size());
+        //鍒犻櫎matter 鍜宻iteMatter
+        if (!ObjectUtils.isEmpty(delList)) {
+            Long[] delMatterIds = delList.parallelStream().map(i -> i.getId()).toArray(Long[]::new);
+            matterService.remove(delMatterIds, context);
+            SiteMatterQuery siteMatterQuery = new SiteMatterQuery();
+            siteMatterQuery.setMatterIdList(Arrays.asList(delMatterIds));
+            List<SiteMatterEntity> delSiteMatterList = siteMatterService.find(siteMatterQuery);
+            if (!ObjectUtils.isEmpty(delSiteMatterList)) {
+                log.info("鍒犻櫎绔欑偣浜嬮」鏁伴噺锛歿}", delSiteMatterList.size());
+                siteMatterService.removeList(delSiteMatterList, context);
+            }
+            SiteThemeMatterQuery siteThemeMatterQuery = new SiteThemeMatterQuery();
+            siteThemeMatterQuery.setMatterIdList(Arrays.asList(delMatterIds));
+
+            List<SiteThemeMatterEntity> delSiteThemeMatterList = siteThemeMatterService.find(siteThemeMatterQuery);
+
+            if (!ObjectUtils.isEmpty(delSiteThemeMatterList)) {
+                log.info("鍒犻櫎绔欑偣涓婚浜嬮」鏁伴噺锛歿}", delSiteThemeMatterList.size());
+                siteThemeMatterService.removeList(delSiteThemeMatterList, context);
+            }
+
+
+        }
+        return Rest.ok("鍚屾鍒犻櫎鎴愬姛锛�");
+    }
+
 
 }
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterServiceImpl.java
index 3b197a417f6fbb7ab1897f2fc6f730c679c7c7da..3992c00e9602425b85af59e506ba6529834a8b96 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterServiceImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterServiceImpl.java
@@ -1,5 +1,6 @@
 package com.mortals.xhx.module.matter.service.impl;
 
+import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.PageUtil;
 import cn.hutool.core.util.ReflectUtil;
 import cn.hutool.setting.Setting;
@@ -315,6 +316,11 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter
         return matterInfoResult;
     }
 
+    /**
+     * @param context
+     * @return
+     */
+
 
     @Override
     public void syncMatter(String areaCode, Context context) {
@@ -1033,7 +1039,7 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter
         while (reCount < MAX_RETRY_COUNT) {
             try {
                 if (ObjectUtils.isEmpty(matterEntity.getUrl())) {
-                   // bool = true;
+                    // bool = true;
                     msg = "浜嬮」url涓嶈兘涓虹┖!";
                     break;
                     //return Rest.fail("浜嬮」url涓嶈兘涓虹┖!");
@@ -1063,11 +1069,11 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter
                 if (matterEditionLocal >= matterEditionRemote) {
                     //bool = true;
                     msg = "鏈湴浜嬮」鐗堟湰澶т簬绛変簬杩滅锛屼笉闇€瑕佹洿鏂帮紒!";
-                  //  break;
+                   // break;
                     // return Rest.fail("鏈湴浜嬮」鐗堟湰澶т簬绛変簬杩滅锛屼笉闇€瑕佹洿鏂帮紒");
                 }
 
-               // log.info("鏇存柊璇︾粏浜嬮」==>{},id===>{},localVersion===>{},newVersion==>{}", matterEntity.getMatterName(),matterEntity.getId(),matterEntity.getMatterEdition(), matterEditionRemote);
+                // log.info("鏇存柊璇︾粏浜嬮」==>{},id===>{},localVersion===>{},newVersion==>{}", matterEntity.getMatterName(),matterEntity.getId(),matterEntity.getMatterEdition(), matterEditionRemote);
                 //鏇存柊閮ㄩ棬淇℃伅
                 DeptEntity extCache = deptService.getExtCache(matterEntity.getDeptCode());
                 matterEntity.setDeptName(extCache == null ? "" : extCache.getName());
@@ -1099,7 +1105,7 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter
                 //鏇存柊浜嬮」鏇存柊鏍囧織
                 matterEntity.setHaveGetMatterInfo("true");
 
-                matterEntity.setMatterEdition(matterEditionRemote+"");
+                matterEntity.setMatterEdition(matterEditionRemote + "");
 
                 return Rest.ok("鏇存柊璇︾粏鎴愬姛锛�");
 
@@ -1393,4 +1399,309 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter
     }
 
 
+    @Override
+    public Rest<Void> genMatterTxt(MatterQuery matterQuery, Context context) {
+
+        List<String> strList = new ArrayList<>();
+        List<MatterEntity> mattersList = this.find(matterQuery);
+        for (MatterEntity matterEntity : mattersList) {
+            if (ObjectUtils.isEmpty(matterEntity.getUrl())) {
+                continue;
+            }
+            StringBuilder sb = new StringBuilder();
+            int reCount = 0;
+            while (reCount < MAX_RETRY_COUNT) {
+
+                try {
+
+                    Document dom = Jsoup.connect(matterEntity.getUrl())
+                            .ignoreContentType(true)
+                            .ignoreHttpErrors(true)
+                            .timeout(60 * 1000).get();
+
+                    //  sb.append(matterEntity.getMatterName()).append("\n");
+
+                    //鍩烘湰灞炴€�
+                    sb.append(matterEntity.getMatterName()).append("-鍩烘湰淇℃伅,");
+                    Map<String, String> baseInfoMap = MatterDetailHtmlParseUtil.getbaseInfoMapByHtml(dom);
+                    StringBuilder sb1 = new StringBuilder();
+                    for (Map.Entry<String, String> entry : baseInfoMap.entrySet()) {
+                        if(sb1.length()>360){
+                            sb.append(sb1);
+                            sb.append("\n");
+                            sb1 = new StringBuilder();
+                            sb.append(matterEntity.getMatterName()).append("-鍩烘湰淇℃伅,");
+                        }
+                        sb1.append(entry.getKey()).append("  ").append(entry.getValue());
+                    }
+                    sb.append(sb1);
+
+                    sb.append("\n");
+                    //鏇存柊鏉愭枡灞炴€�
+                    sb.append(matterEntity.getMatterName()).append("-鐢宠鏉愭枡,");
+                    List<Map<String, Object>> sqclList = MatterDetailHtmlParseUtil.getsqclInfoMapByHtml(dom);
+                    for (Map<String, Object> sqclMap : sqclList) {
+                        Map<String, String> baseinfoMap = (HashMap<String, String>) sqclMap.get("baseinfo");
+                        for (Map.Entry<String, String> entry : baseinfoMap.entrySet()) {
+                            if(!"鏉愭枡鍚嶇О".equals(entry.getKey())){
+                                continue;
+                            }
+                            sb.append(entry.getKey()).append("  ").append(entry.getValue());
+                        }
+      /*                  List<MatterDatumFileEntity> datumFileEntities = (List<MatterDatumFileEntity>) sqclMap.get("blankList");
+                        for (MatterDatumFileEntity datumFileEntity : datumFileEntities) {
+                            sb.append("鏉愭枡鍚嶇О").append("  ").append(datumFileEntity.getFileName());
+                            sb.append("鏉愭枡鍦板潃").append("  ").append(datumFileEntity.getFileUrl());
+                        }*/
+                    }
+                    //鏇存柊鍙楃悊鏉′欢
+                    sb.append("\n");
+                    sb.append(matterEntity.getMatterName()).append("-鍙楃悊鏉′欢,");
+                    Map<String, String> sltjMap = MatterDetailHtmlParseUtil.getSltjMapByHtml(dom);
+                    String sltjStr = sltjMap.getOrDefault("sltj", "  ");
+                    sb.append(sltjStr);
+                    //鏇存柊鍔炵悊娴佺▼
+                    sb.append("\n");
+                    sb.append(matterEntity.getMatterName()).append("-鍔炵悊娴佺▼,");
+                    List<Map<String, Object>> bllcMapList = MatterDetailHtmlParseUtil.getbllcMapByHtml(dom);
+                    for (Map<String, Object> bllcMap : bllcMapList) {
+                        for (Map.Entry<String, Object> entry : bllcMap.entrySet()) {
+                            sb.append(entry.getKey()).append("  ").append(entry.getValue());
+                        }
+                    }
+
+                    //鏇存柊鏀惰垂鏍囧噯
+                    sb.append("\n");
+                    sb.append(matterEntity.getMatterName()).append("-鏀惰垂鏍囧噯,");
+                    Map<String, String> sfbzMap = MatterDetailHtmlParseUtil.getSfbzMapByHtml(dom);
+
+                    String sfbzStr = sfbzMap.getOrDefault("sfbz", "  ");
+                    sb.append(sfbzStr);
+                    sb.append("\n");
+
+                    //璁惧畾渚濇嵁
+                /*    sb.append(matterEntity.getMatterName()).append("-璁惧畾渚濇嵁,");
+                    List<Map<String, Object>> sdyjMapList = MatterDetailHtmlParseUtil.getSdyjMapByHtml(dom);
+                    StringBuilder sb2 = new StringBuilder();
+                    for (Map<String, Object> bllcMap : sdyjMapList) {
+                        for (Map.Entry<String, Object> entry : bllcMap.entrySet()) {
+                            if(sb2.length()>360){
+                                sb.append(sb2);
+                                sb.append("\n");
+                                sb2 = new StringBuilder();
+                                sb.append(matterEntity.getMatterName()).append("-璁惧畾渚濇嵁,");
+                            }
+                            sb2.append(entry.getKey()).append("  ").append(entry.getValue());
+                        }
+                    }
+                    sb.append(sb2);*/
+                    //涓粙鏈嶅姟
+                    sb.append("\n");
+                    sb.append(matterEntity.getMatterName()).append("-涓粙鏈嶅姟,");
+                    Map<String, String> zjfwMap = MatterDetailHtmlParseUtil.getZjfwMapByHtml(dom);
+                    for (Map.Entry<String, String> entry : zjfwMap.entrySet()) {
+                        sb.append(entry.getKey()).append("  ").append(entry.getValue());
+                    }
+                    //甯歌闂
+                    sb.append("\n");
+                    sb.append(matterEntity.getMatterName()).append("-甯歌闂,");
+                    StringBuilder sb3 = new StringBuilder();
+                    List<Map<String, Object>> cjwtMapList = MatterDetailHtmlParseUtil.getCjwtMapByHtml(dom);
+                    for (Map<String, Object> bllcMap : cjwtMapList) {
+                        for (Map.Entry<String, Object> entry : bllcMap.entrySet()) {
+                            if(sb3.length()>360){
+                                sb.append(sb3);
+                                sb.append("\n");
+                                sb3 = new StringBuilder();
+                                sb.append(matterEntity.getMatterName()).append("-甯歌闂,");
+                            }
+                            sb3.append(entry.getKey()).append("  ").append(entry.getValue());
+
+                        }
+                    }
+                    sb.append(sb3);
+                    strList.add(sb.toString());
+                    log.info("浜嬮」鍚嶇О:{}",matterEntity.getMatterName());
+                    break;
+                } catch (Exception e) {
+                    log.error("寮傚父", e);
+                    reCount++;
+                    try {
+                        Thread.sleep(2000);
+                    } catch (InterruptedException ie) {
+                    }
+                }
+            }
+        }
+
+        //todo 瀹炴椂鐖彇鍚庣粍鍚�
+
+        String path = "E:\\temp.csv";
+        FileUtil.writeUtf8Lines(strList,path);
+
+        return Rest.ok();
+    }
+
+
+    @Override
+    public Rest<Void> genMatterMarkdown(MatterQuery matterQuery, Context context) {
+        List<String> strList = new ArrayList<>();
+        List<MatterEntity> mattersList = this.find(matterQuery);
+        for (MatterEntity matterEntity : mattersList) {
+            if (ObjectUtils.isEmpty(matterEntity.getUrl())) {
+                continue;
+            }
+            StringBuilder sb = new StringBuilder();
+            int reCount = 0;
+            while (reCount < MAX_RETRY_COUNT) {
+
+                try {
+
+                    Document dom = Jsoup.connect(matterEntity.getUrl())
+                            .ignoreContentType(true)
+                            .ignoreHttpErrors(true)
+                            .timeout(60 * 1000).get();
+
+                    //鍩烘湰灞炴€�
+                    sb.append("# "+matterEntity.getMatterName()+"\n");
+                    sb.append("\n");
+                    sb.append("## 鍩烘湰淇℃伅\n");
+                    Map<String, String> baseInfoMap = MatterDetailHtmlParseUtil.getbaseInfoMapByHtml(dom);
+                    for (Map.Entry<String, String> entry : baseInfoMap.entrySet()) {
+                        sb.append(entry.getKey()).append("  ").append(entry.getValue());
+                        sb.append("\n");
+                    }
+                    sb.append("\n");
+                    //鏇存柊鏉愭枡灞炴€�
+                    sb.append("## 鐢宠鏉愭枡\n");
+                    List<Map<String, Object>> sqclList = MatterDetailHtmlParseUtil.getsqclInfoMapByHtml(dom);
+                    for (Map<String, Object> sqclMap : sqclList) {
+                        Map<String, String> baseinfoMap = (HashMap<String, String>) sqclMap.get("baseinfo");
+                        for (Map.Entry<String, String> entry : baseinfoMap.entrySet()) {
+
+                            if("瑕佹眰鎻愪緵鏉愭枡鐨勪緷鎹�".equals(entry.getKey())) continue;
+                            sb.append(entry.getKey()).append("  ").append(entry.getValue());
+                            sb.append("\n");
+                        }
+                    }
+                    //鏇存柊鍙楃悊鏉′欢
+                    sb.append("\n");
+                    sb.append("## 鍙楃悊鏉′欢\n");
+                    Map<String, String> sltjMap = MatterDetailHtmlParseUtil.getSltjMapByHtml(dom);
+                    String sltjStr = sltjMap.getOrDefault("sltj", "  ");
+                    sb.append(sltjStr);
+                    //鏇存柊鍔炵悊娴佺▼
+                    sb.append("\n");
+                    sb.append("## 鍔炵悊娴佺▼\n");
+                    List<Map<String, Object>> bllcMapList = MatterDetailHtmlParseUtil.getbllcMapByHtml(dom);
+                    for (Map<String, Object> bllcMap : bllcMapList) {
+                        for (Map.Entry<String, Object> entry : bllcMap.entrySet()) {
+
+                            if("sort".equals(entry.getKey())){
+                                sb.append("娴佺▼").append(":").append(entry.getValue());
+                            }else{
+                                sb.append(entry.getKey()).append("  ").append(entry.getValue());
+                            }
+                            sb.append("\n");
+                        }
+                    }
+
+                    //鏇存柊鏀惰垂鏍囧噯
+                    sb.append("\n");
+                    sb.append("## 鏀惰垂鏍囧噯\n");
+                    Map<String, String> sfbzMap = MatterDetailHtmlParseUtil.getSfbzMapByHtml(dom);
+
+                    String sfbzStr = sfbzMap.getOrDefault("sfbz", "  ");
+                    sb.append(sfbzStr);
+
+                    //璁惧畾渚濇嵁
+                /*    sb.append(matterEntity.getMatterName()).append("-璁惧畾渚濇嵁,");
+                    List<Map<String, Object>> sdyjMapList = MatterDetailHtmlParseUtil.getSdyjMapByHtml(dom);
+                    StringBuilder sb2 = new StringBuilder();
+                    for (Map<String, Object> bllcMap : sdyjMapList) {
+                        for (Map.Entry<String, Object> entry : bllcMap.entrySet()) {
+                            if(sb2.length()>360){
+                                sb.append(sb2);
+                                sb.append("\n");
+                                sb2 = new StringBuilder();
+                                sb.append(matterEntity.getMatterName()).append("-璁惧畾渚濇嵁,");
+                            }
+                            sb2.append(entry.getKey()).append("  ").append(entry.getValue());
+                        }
+                    }
+                    sb.append(sb2);*/
+                    //涓粙鏈嶅姟
+                    sb.append("\n");
+                    sb.append("## 涓粙鏈嶅姟\n");
+                    Map<String, String> zjfwMap = MatterDetailHtmlParseUtil.getZjfwMapByHtml(dom);
+
+                    if(zjfwMap.size()>0){
+                        for (Map.Entry<String, String> entry : zjfwMap.entrySet()) {
+                            sb.append(entry.getKey()).append("  ").append(entry.getValue());
+                        }
+                    }else{
+                        sb.append("鏃燶n");
+                    }
+
+
+                    //甯歌闂
+                    sb.append("\n");
+                    sb.append("## 甯歌闂\n");
+                    List<Map<String, Object>> cjwtMapList = MatterDetailHtmlParseUtil.getCjwtMapByHtml(dom);
+                    for (Map<String, Object> bllcMap : cjwtMapList) {
+                        for (Map.Entry<String, Object> entry : bllcMap.entrySet()) {
+                            sb.append(entry.getKey()).append("  ").append(entry.getValue());
+                            sb.append("\n");
+                        }
+                    }
+                    strList.add(sb.toString());
+                    log.info("浜嬮」鍚嶇О:{}",matterEntity.getMatterName());
+                    break;
+                } catch (Exception e) {
+                    log.error("寮傚父", e);
+                    reCount++;
+                    try {
+                        Thread.sleep(2000);
+                    } catch (InterruptedException ie) {
+                    }
+                }
+            }
+        }
+        String path = "E:\\gov.md";
+        FileUtil.writeUtf8Lines(strList,path);
+
+        return Rest.ok();
+    }
+
+
+    public static void main(String[] args) {
+
+/*
+        ArrayList<MatterEntity> matterEntities = new ArrayList<>();
+
+        MatterEntity matterEntity = new MatterEntity();
+        matterEntity.initAttrValue();
+        matterEntities.add(matterEntity);
+
+        String path = "E:\\1.txt";
+
+        FileUtil.writeUtf8Lines(matterEntities, path);
+
+*/
+
+
+        StringBuilder sb = new StringBuilder();
+
+        sb.append("闂�:灏忓尯缁忎笟涓诲ぇ浼氱画鑱橈紙鎴栭€夎仒锛夌墿涓氭湇鍔′紒涓氱殑锛岀墿涓氭湇鍔″悎鍚屽妗堝鍙紑浼氳鏃堕棿鏄惁鏈夎姹傦紵  绛�:鏈夈€傛牴鎹€婂洓宸濈渷涓氫富澶т細鍜屼笟涓诲鍛樹細鎸囧瑙勫垯銆嬬浉鍏宠姹傦紝涓氫富濮斿憳浼氬簲褰撹嚜鎻愯纭畾涔嬫棩璧凤紝灏嗕笟涓诲ぇ浼氫細璁嫙琛ㄥ喅浜嬮」鍦ㄧ墿涓氱鐞嗗尯鍩熷唴鏄捐憲浣嶇疆鍏ず骞跺憡鐭ョ浉鍏崇殑灞呮皯锛堟潙姘戯級濮斿憳浼氾紝鍏ず鏈熶笉灏戜簬15鏃ャ€俓n" +
+                "浣忓畢涓撻」缁翠慨璧勯噾浜ゅ瓨-鍩烘湰淇℃伅,鏄惁鏀寔鍏ㄧ渷灏辫繎鍔炵悊  鍚︽槸鍚︽敮鎸佺墿娴佸揩閫�  鍚︿笟鍔″姙鐞嗛」缂栫爜  11510821008501563R451201700100301璁よ瘉绛夌骇闇€姹�  瀹炲悕璁よ瘉鍚嶇О  鎿嶄綔鎵胯鍔炵粨鏃堕檺  1涓伐浣滄棩鍩烘湰缂栫爜  512017001003璁″垝鐢熸晥鏃ユ湡  鏃犳硶瀹氬姙缁撴椂闄�  1涓伐浣滄棩瀹炴柦涓讳綋缂栫爜  11510821008501563R缃戝姙鍦板潃  鐐瑰嚮璁块棶鏈嶅姟瀵硅薄  鑷劧浜哄挩璇㈡柟寮�  鍜ㄨ鐢佃瘽锛�0825-5428572;浜嬮」鐘舵€�  鍦ㄧ敤鍔炵悊鏃堕棿  鏄熸湡涓€鑷虫槦鏈熶簲 涓婂崍锛�08:30-12:00 涓嬪崍锛�14:00-17:30 澶囨敞锛氭硶瀹氳妭鍋囨棩闄ゅ;瀹炴柦涓讳綋鎬ц川  鍙楀鎵樼粍缁囨槸鍚﹁繘椹绘斂鍔″ぇ鍘�  鏄潙灞呯ぞ鍖哄悕绉�  鏃犳潈鍔涙潵婧�  涓婄骇涓嬫斁鏉戝眳绀惧尯浠g爜  鏃犳硶瀹氭椂闄愬姙缁撹鏄�  鑷彈鐞嗕箣鏃ヨ捣锛屽湪娉曞畾鏈熼檺鍐呭姙缁撹浣垮眰绾�  鍘跨骇鍒板姙浜嬬幇鍦烘鏁�  0浣忓畢涓撻」缁翠慨璧勯噾浜ゅ瓨-鍩烘湰淇℃伅,缃戝姙绫诲瀷  鍏ㄧ▼缃戝姙瀹炴柦涓讳綋  钃邯鍘夸綇鎴垮拰鍩庝埂寤鸿灞€鏄惁缃戝姙  鏄洃鐫f姇璇夋柟寮�  鎶曡瘔鐢佃瘽锛�0825-12345;浜嬮」绫诲瀷  鍏叡鏈嶅姟琛屼娇鏂瑰紡  渚濈敵璇疯浣挎壙璇烘椂闄愬姙缁撹鏄�  鑷彈鐞嗕箣鏃ヨ捣锛屽湪鎵胯鏈熼檺鍐呭姙缁撴槸鍚︽敮鎸佸叏鐪佸氨杩戝彇浠�  鍚︽槸鍚︽敮鎸侀绾﹀姙鐞�  鍚︿簨椤圭増鏈�  19鑱斿姙鏈烘瀯  鏃犲姙浠剁被鍨�  鍗冲姙浠堕€氬姙鑼冨洿  鏃犳槸鍚︽敮鎸佷笂闂ㄦ敹鍙栫敵璇锋潗鏂�  鍚︽槸鍚︽敮鎸佽嚜鍔╃粓绔姙鐞�  鍚︽暟閲忛檺鍒�  鏃犲姙鐞嗗舰寮�  绐楀彛鍔炵悊銆佺綉涓婂姙鐞嗕埂闀囪閬撳悕绉�  鏃犳槸鍚︽敮鎸佺綉涓婃敮浠�  鍚﹀鎵橀儴闂�  钃邯鍘夸綇鎴夸繚闅滃拰鎴垮眿绠$悊灞€涔¢晣琛楅亾浠g爜  鏃犳槸鍚︽敹璐�  鍚︾綉涓婂姙鐞嗘繁搴�  浜掕仈缃戝挩璇€€佷簰鑱旂綉鏀朵欢銆佷簰鑱旂綉棰勫銆佷簰鑱旂綉鍙楃悊銆佷簰鑱旂綉鍔炵悊銆佷簰鑱旂綉鍔炵悊缁撴灉淇℃伅鍙嶉瀹炴柦缂栫爜  11510821008501563R4512017001003鐗瑰埆绋嬪簭  蹇呴』鍒扮幇鍦哄師鍥�  鏃犱綇瀹呬笓椤圭淮淇祫閲戜氦瀛�-鍩烘湰淇℃伅,鍔炵悊鍦扮偣  鍥涘窛鐪�-閬傚畞甯�-钃邯鍘�-铚€鍖椾腑璺閬�-108鍙�,璇︾粏鍦板潃锛氳摤婧幙浣忔埧淇濋殰鍜屾埧灞嬬鐞嗗眬涓夋ゼ鍔炲叕瀹�;璁″垝鍙栨秷鏃ユ湡  鏃燶n" +
+                "浣忓畢涓撻」缁翠慨璧勯噾浜ゅ瓨-鐢宠鏉愭枡,鏉愭枡鍚嶇О  鍏湁浣忔埧涔板崠鍚堝悓鏉愭枡鍚嶇О  韬唤璇佹槑鏉愭枡鏉愭枡鍚嶇О  鍟嗗搧鎴夸拱鍗栧悎鍚孿n" +
+                "浣忓畢涓撻」缁翠慨璧勯噾浜ゅ瓨-鍙楃悊鏉′欢,鍥涘窛鐪佽鏀垮尯鍩熷唴鍟嗗搧浣忓畢銆佸敭鍚庡叕鏈変綇鎴夸綇瀹呬笓椤圭淮淇祫閲戯紙浠ヤ笅绉扮淮淇祫閲戯級鐨勪氦瀛樸€佷娇鐢ㄣ€佺鐞嗗拰鐩戠潱锛屾嫙鐢宠浣忓畢涓撻」缁翠慨璧勯噾浜ゅ瓨銆俓n" +
+                "浣忓畢涓撻」缁翠慨璧勯噾浜ゅ瓨-鍔炵悊娴佺▼,杞鏃堕檺  0涓伐浣滄棩sort  1鍔炵悊娴佺▼  鍙楃悊鍔炵悊娴佺▼璇存槑  1.鐢宠锛氱敵璇蜂汉鍒版斂鍔℃湇鍔′腑蹇冪患鍚� 绐楀彛鎻愪氦鐢宠鏉愭枡锛�2.鍙楃悊锛氱獥鍙e伐浣滀汉鍛樻敹鍒扮敵璇锋潗鏂欏綋鍦烘垨鑰呰瀹氬伐浣滄棩鍐呬綔鍑哄彈鐞嗘垨涓嶄簣鍙楃悊鍐冲畾銆傛潗鏂欎笉榻愬叏鎴栦笉绗﹀悎娉曞畾褰㈠紡鐨勶紝鍔炵悊鏈哄叧搴斿湪瑙勫畾宸ヤ綔鏃ュ唴涓€娆℃€у憡鐭ョ敵璇蜂汉闇€瑕佽ˉ姝g殑鍏ㄩ儴鍐呭锛屽涓嶅睘浜庡彈鐞嗚寖鍥寸殑锛屽嚭鍏蜂笉浜堝彈鐞嗛€氱煡涔︼紱3.瀹℃煡锛氬姙鐞嗕汉鍛樺鐢宠浜烘彁浜ょ殑鏉愭枡杩涜瀹℃煡锛屾彁鍑哄垵姝ュ鏌ユ剰瑙侊紱4.鍐冲畾锛氬姙鐞嗘満鍏宠礋璐d汉渚濇嵁瀹℃煡鎰忚绛剧讲瀹℃壒缁撴灉銆傚浜堟壒鍑嗗姙鐞嗙殑锛岀敱鍔炵悊鏈哄叧鍚戠敵璇蜂汉鏍稿彂鍔炵悊缁撴灉锛屼笉浜堟壒鍑嗙殑锛岀敱鍔炵悊鏈哄叧涔﹂潰閫氱煡鐢宠浜哄苟璇存槑鐞嗙敱锛屽苟鍛婄煡鐢宠浜哄缁撴灉鏈夊紓璁殑锛屽彲渚濇硶鐢宠琛屾斂澶嶈鎴栬€呮彁璧疯鏀胯瘔璁硷紱5.鍒惰瘉锛氬埗璇侀儴闂ㄥ畬鎴愬埗璇侊紱6.棰佸彂鍜岄€佽揪锛氱敵璇蜂汉鍑釜浜鸿韩浠借瘉鏄庯紙鏈夋晥鐨勮韩浠借瘉銆佷复鏃跺眳浣忚瘉銆佹埛鍙g翱绛夛級鍜屽彈鐞嗛€氱煡涔﹀埌鐢冲姙绐楀彛棰嗗彇鍔炵悊缁撴灉銆傚姙鐞嗘椂闀�  0涓伐浣滄棩杞鏃堕檺  0涓伐浣滄棩sort  2鍔炵悊娴佺▼  鍔炵粨鍔炵悊鏃堕暱  0涓伐浣滄棩\n" +
+                "浣忓畢涓撻」缁翠慨璧勯噾浜ゅ瓨-鏀惰垂鏍囧噯,璇ヤ簨椤规棤鏀惰垂鏍囧噯锛乗n" +
+                "浣忓畢涓撻」缁翠慨璧勯噾浜ゅ瓨-璁惧畾渚濇嵁,娉曡绫诲瀷  閮ㄩ棬瑙勭珷鏉′緥  绗叚鏉℃潯娆惧唴瀹�  涓嬪垪鐗╀笟鐨勪笟涓诲簲褰撴寜鐓ф湰鍔炴硶鐨勮瀹氫氦瀛樹綇瀹呬笓椤圭淮淇祫閲戯細 锛堜竴锛変綇瀹咃紝浣嗕竴涓笟涓绘墍鏈変笖涓庡叾浠栫墿涓氫笉鍏锋湁鍏辩敤閮ㄤ綅銆佸叡鐢ㄨ鏂借澶囩殑闄ゅ锛� 锛堜簩锛変綇瀹呭皬鍖哄唴鐨勯潪浣忓畢鎴栬€呬綇瀹呭皬鍖哄涓庡崟骞綇瀹呯粨鏋勭浉杩炵殑闈炰綇瀹呫€� 鍓嶆鎵€鍒楃墿涓氬睘浜庡嚭鍞叕鏈変綇鎴跨殑锛屽敭鎴垮崟浣嶅簲褰撴寜鐓ф湰鍔炴硶鐨勮瀹氫氦瀛樹綇瀹呬笓椤圭淮淇祫閲戙€傛硶寰嬫硶瑙勫悕绉�  浣忓畢涓撻」缁翠慨璧勯噾绠$悊鍔炴硶sort  1娉曡绫诲瀷  鍦版柟娉曡鏉′緥  绗叚鍗佷節鏉℃潯娆惧唴瀹�  浣忓畢鐗╀笟鍜屼綇瀹呭尯鍐呯殑闈炰綇瀹呯墿涓氬嚭鍞椂锛岀墿涓氬嚭鍞汉鍜屼拱鍙椾汉搴斿綋鎸夌収鍥藉鍜岀渷鐨勮瀹氫氦瀛樹笓椤圭淮淇祫閲戙€傛硶寰嬫硶瑙勫悕绉�  鍥涘窛鐪佺墿涓氱鐞嗘潯渚媠ort  2");
+        System.out.println(sb.length());
+
+    }
+
+
 }
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterAcceptController.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterAcceptController.java
index 6d3f95524df6148fc125b8f49c9c063cc3fb34f6..927a1fd791fc4eb09a7838801212dbdf6237cebb 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterAcceptController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterAcceptController.java
@@ -4,7 +4,6 @@ import com.mortals.framework.annotation.UnAuth;
 import com.mortals.framework.common.Rest;
 import com.mortals.framework.model.Context;
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
-import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
 import com.mortals.xhx.base.system.param.service.ParamService;
 import com.mortals.xhx.module.matter.model.MatterAcceptEntity;
 import com.mortals.xhx.module.matter.service.MatterAcceptService;
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterChargesController.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterChargesController.java
index 3989573bb47cc1f5bb90d29388b16e4ff07febc4..c7304b6e203c4d96ae0b8e7dfb47dbb80eb91e03 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterChargesController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterChargesController.java
@@ -4,7 +4,6 @@ import com.mortals.framework.annotation.UnAuth;
 import com.mortals.framework.common.Rest;
 import com.mortals.framework.model.Context;
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
-import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
 import com.mortals.xhx.base.system.param.service.ParamService;
 import com.mortals.xhx.module.matter.model.MatterChargesEntity;
 import com.mortals.xhx.module.matter.service.MatterChargesService;
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterController.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterController.java
index 4e1cbc827060ba0afc21b02cc415101269d0e71c..cdb9ea1fb73286fc3c1765d63cd325637ed9fdbe 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterController.java
@@ -9,12 +9,13 @@ import com.mortals.framework.model.Context;
 import com.mortals.framework.model.PageInfo;
 import com.mortals.framework.model.Result;
 import com.mortals.framework.util.DataUtil;
+import com.mortals.framework.util.ThreadPool;
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
-import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
 import com.mortals.xhx.base.framework.config.InterceptorConfig;
 import com.mortals.xhx.base.system.param.service.ParamService;
 import com.mortals.xhx.common.code.JointInfoShowEnum;
 import com.mortals.xhx.module.matter.model.MatterEntity;
+import com.mortals.xhx.module.matter.model.MatterQuery;
 import com.mortals.xhx.module.matter.service.MatterService;
 import com.mortals.xhx.module.site.model.SiteThemeQuery;
 import com.mortals.xhx.module.site.service.SiteThemeService;
@@ -50,6 +51,8 @@ public class MatterController extends BaseCRUDJsonBodyMappingController<MatterSe
     private InterceptorConfig interceptorConfig;
     @Autowired
     private SiteThemeService siteThemeService;
+    @Autowired
+    private MatterService matterService;
 
     public MatterController() {
         super.setModuleDesc("鍩虹浜嬮」");
@@ -189,4 +192,64 @@ public class MatterController extends BaseCRUDJsonBodyMappingController<MatterSe
         return ret;
     }
 
+
+    @PostMapping(value = "genMatterTxt")
+    @UnAuth
+    public Rest<Object> genMatterTxt(@RequestBody MatterQuery query) {
+        Rest<Object> ret = new Rest<>();
+        Map<String, Object> model = new HashMap<>();
+        Context context = this.getContext();
+        String busiDesc = "鐢熸垚鏂囨湰" + this.getModuleDesc();
+        int code = VALUE_RESULT_SUCCESS;
+        try {
+
+        /*    Runnable runnable = new Runnable() {
+                *//**
+                 *
+                 *//*
+                @Override
+                public void run() {
+                    matterService.genMatterTxt(query, getContext());
+                }
+            };
+
+            ThreadPool.getInstance().execute(runnable);*/
+
+            this.service.genMatterTxt(query, getContext());
+            model.put(MESSAGE_INFO, busiDesc + "鎴愬姛");
+
+        } catch (Exception e) {
+            code = VALUE_RESULT_FAILURE;
+            this.doException(request, busiDesc, model, e);
+        }
+        ret.setCode(code);
+        ret.setData(model);
+        ret.setMsg(model.get(MESSAGE_INFO) == null ? "" : model.remove(MESSAGE_INFO).toString());
+        return ret;
+    }
+
+
+    @PostMapping(value = "genMatterMarkdown")
+    @UnAuth
+    public Rest<Object> genMatterMarkdown(@RequestBody MatterQuery query) {
+        Rest<Object> ret = new Rest<>();
+        Map<String, Object> model = new HashMap<>();
+        Context context = this.getContext();
+        String busiDesc = "鐢熸垚鏂囨湰" + this.getModuleDesc();
+        int code = VALUE_RESULT_SUCCESS;
+        try {
+
+            this.service.genMatterMarkdown(query, getContext());
+            model.put(MESSAGE_INFO, busiDesc + "鎴愬姛");
+
+        } catch (Exception e) {
+            code = VALUE_RESULT_FAILURE;
+            this.doException(request, busiDesc, model, e);
+        }
+        ret.setCode(code);
+        ret.setData(model);
+        ret.setMsg(model.get(MESSAGE_INFO) == null ? "" : model.remove(MESSAGE_INFO).toString());
+        return ret;
+    }
+
 }
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterDatumController.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterDatumController.java
index 946765d86f788bff677a86d97e506670778682dc..206511de3a535a4471a2d3b0c52dbde149ef0078 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterDatumController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterDatumController.java
@@ -1,5 +1,8 @@
 package com.mortals.xhx.module.matter.web;
 
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.mortals.framework.annotation.UnAuth;
 import com.mortals.framework.common.Rest;
 import com.mortals.framework.exception.AppException;
@@ -7,7 +10,6 @@ import com.mortals.framework.model.Context;
 import com.mortals.framework.model.PageInfo;
 import com.mortals.framework.model.Result;
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
-import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
 import com.mortals.xhx.base.system.param.service.ParamService;
 import com.mortals.xhx.module.matter.model.MatterDatumEntity;
 import com.mortals.xhx.module.matter.model.MatterDatumFileEntity;
@@ -17,10 +19,7 @@ import com.mortals.xhx.module.matter.service.MatterDatumFileService;
 import com.mortals.xhx.module.matter.service.MatterDatumService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.ObjectUtils;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.HashMap;
 import java.util.List;
@@ -99,13 +98,14 @@ public class MatterDatumController extends BaseCRUDJsonBodyMappingController<Mat
         List<MatterDatumEntity> matterDatumEntities = (List<MatterDatumEntity>) model.get(KEY_RESULT_DATA);
         //鍘婚噸澶�
         List<MatterDatumEntity> collect = matterDatumEntities.stream().distinct().collect(Collectors.toList());
-        model.put(KEY_RESULT_DATA,collect);
+        model.put(KEY_RESULT_DATA, collect);
         return super.doListAfter(query, model, context);
     }
 
 
     /**
      * 鏌ヨ鐨勬潗鏂� 鍚嶇О鍘婚噸 骞朵笖
+     *
      * @param query
      * @return
      */
@@ -135,4 +135,33 @@ public class MatterDatumController extends BaseCRUDJsonBodyMappingController<Mat
         return ret;
     }
 
+
+    /**
+     * 瑙e瘑涓嬭浇鍦板潃
+     *
+     * @param encryptId 鏂囦欢鍔犲瘑id
+     * @return
+     */
+    @GetMapping(value = "decodeDownloadUrl")
+    @UnAuth
+    public Rest<String> decodeDownloadUrl(@RequestParam(name = "encryptId") String encryptId) {
+        Map<String, Object> model = new HashMap<>();
+        String busiDesc = "鏌ヨ鏉愭枡" + this.getModuleDesc();
+        try {
+            String encryUrl = "http://www.sczwfw.gov.cn/jiq/interface/item/annex/encryptUrl?id=" + encryptId;
+            String resp = HttpUtil.get(encryUrl);
+            JSONObject obj = JSON.parseObject(resp);
+            String code = obj.getString("code");
+            String data = obj.getString("data");
+            if ("0".equals(code)) {
+                return Rest.ok("鑾峰彇闄勪欢閾炬帴鎴愬姛锛�",data);
+            } else {
+                return Rest.fail("鑾峰彇閾炬帴澶辫触");
+            }
+        } catch (Exception e) {
+            this.doException(request, busiDesc, model, e);
+            return Rest.fail(e.getMessage());
+        }
+    }
+
 }
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterDatumFileController.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterDatumFileController.java
index 068f0738a1cca361bedc933fe9da7fd66dfa9851..514cf4ddcffedf3edcb5e2903800e9d912b47770 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterDatumFileController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterDatumFileController.java
@@ -4,7 +4,6 @@ import com.mortals.framework.annotation.UnAuth;
 import com.mortals.framework.common.Rest;
 import com.mortals.framework.model.Context;
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
-import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
 import com.mortals.xhx.base.system.param.service.ParamService;
 import com.mortals.xhx.module.matter.model.MatterDatumFileEntity;
 import com.mortals.xhx.module.matter.service.MatterDatumFileService;
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterExtController.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterExtController.java
index 0ed2b791f57582ebe84fda322a4ed188c31c34ff..00f1e7907df35a9a7035036b490a3a22821e657b 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterExtController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterExtController.java
@@ -1,6 +1,14 @@
 package com.mortals.xhx.module.matter.web;
+import com.mortals.framework.annotation.UnAuth;
+import com.mortals.framework.common.Rest;
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
 import com.mortals.xhx.base.system.param.service.ParamService;
+import com.mortals.xhx.module.matter.model.MatterQuery;
+import com.mortals.xhx.module.site.model.SiteEntity;
+import com.mortals.xhx.module.site.model.SiteQuery;
+import com.mortals.xhx.module.site.service.SiteService;
+import lombok.extern.slf4j.Slf4j;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -31,10 +39,13 @@ import static com.mortals.framework.ap.SysConstains.*;
 */
 @RestController
 @RequestMapping("matter/ext")
+@Slf4j
 public class MatterExtController extends BaseCRUDJsonBodyMappingController<MatterExtService,MatterExtEntity,Long> {
 
     @Autowired
     private ParamService paramService;
+    @Autowired
+    private SiteService siteService;
 
     public MatterExtController(){
         super.setModuleDesc( "浜嬮」鎵╁睍");
@@ -47,4 +58,32 @@ public class MatterExtController extends BaseCRUDJsonBodyMappingController<Matte
     }
 
 
+
+    @GetMapping(value = "delMattersBySiteId")
+    @UnAuth
+    public Rest<Object> delMattersBySiteId() {
+        Rest<Object> ret = new Rest<>();
+        Map<String, Object> model = new HashMap<>();
+        String busiDesc = "鍒犻櫎" + this.getModuleDesc();
+        int code = VALUE_RESULT_SUCCESS;
+        try {
+
+            List<SiteEntity> siteEntities = siteService.find(new SiteEntity());
+            for (SiteEntity siteEntity : siteEntities) {
+                log.info("寮€濮嬪悓姝ュ垹闄ょ珯鐐逛簨椤�==銆媨}", siteEntity.getSiteName());
+                this.service.syncDelMatterBySiteId(siteEntity, getContext());
+            }
+            model.put(MESSAGE_INFO, busiDesc + "鎴愬姛");
+
+        } catch (Exception e) {
+            code = VALUE_RESULT_FAILURE;
+            this.doException(request, busiDesc, model, e);
+        }
+        ret.setCode(code);
+        ret.setData(model);
+        ret.setMsg(model.get(MESSAGE_INFO) == null ? "" : model.remove(MESSAGE_INFO).toString());
+        return ret;
+    }
+
+
 }
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterFlowlimitController.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterFlowlimitController.java
index 11b985a0f17597f9cf5fe94dffa923608cc681fb..a3f6d3140846d5df14b6c40999aa82961bdcf89c 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterFlowlimitController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterFlowlimitController.java
@@ -4,7 +4,6 @@ import com.mortals.framework.annotation.UnAuth;
 import com.mortals.framework.common.Rest;
 import com.mortals.framework.model.Context;
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
-import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
 import com.mortals.xhx.base.system.param.service.ParamService;
 import com.mortals.xhx.module.matter.model.MatterFlowlimitEntity;
 import com.mortals.xhx.module.matter.service.MatterFlowlimitService;
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterIntermediaryController.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterIntermediaryController.java
index 17e55b3039772c6e1056889d8455ce307ba65875..63805733875a9d869997cef3298ee17ec9872063 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterIntermediaryController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterIntermediaryController.java
@@ -4,7 +4,6 @@ import com.mortals.framework.annotation.UnAuth;
 import com.mortals.framework.common.Rest;
 import com.mortals.framework.model.Context;
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
-import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
 import com.mortals.xhx.base.system.param.service.ParamService;
 import com.mortals.xhx.module.matter.model.MatterIntermediaryEntity;
 import com.mortals.xhx.module.matter.service.MatterIntermediaryService;
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterQuestionController.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterQuestionController.java
index 6bc1fc133e756af4601ae5f48969f316f7fc348c..a598e7c1818f306e920cd880eb9f3d19393630b4 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterQuestionController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterQuestionController.java
@@ -4,7 +4,6 @@ import com.mortals.framework.annotation.UnAuth;
 import com.mortals.framework.common.Rest;
 import com.mortals.framework.model.Context;
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
-import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
 import com.mortals.xhx.base.system.param.service.ParamService;
 import com.mortals.xhx.module.matter.model.MatterQuestionEntity;
 import com.mortals.xhx.module.matter.service.MatterQuestionService;
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterSetbaseController.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterSetbaseController.java
index dded8d152eafe54f8751518864c558683ad64fad..5926414349d09e5cb753cd144c20dee2d4041304 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterSetbaseController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterSetbaseController.java
@@ -4,7 +4,6 @@ import com.mortals.framework.annotation.UnAuth;
 import com.mortals.framework.common.Rest;
 import com.mortals.framework.model.Context;
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
-import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
 import com.mortals.xhx.base.system.param.service.ParamService;
 import com.mortals.xhx.module.matter.model.MatterSetbaseEntity;
 import com.mortals.xhx.module.matter.service.MatterSetbaseService;
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/site/service/impl/SiteBusinessServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/site/service/impl/SiteBusinessServiceImpl.java
index f661234a50fde84920d783464a14dfbb185817a0..fe784ed70061a63d2b6faeedd8736719e70be6f2 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/site/service/impl/SiteBusinessServiceImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/site/service/impl/SiteBusinessServiceImpl.java
@@ -21,6 +21,7 @@ import com.mortals.xhx.module.site.service.SiteBusinessService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
@@ -39,9 +40,11 @@ import java.util.stream.Collectors;
 public class SiteBusinessServiceImpl extends AbstractCRUDCacheServiceImpl<SiteBusinessDao, SiteBusinessEntity, Long> implements SiteBusinessService {
 
     @Autowired
+    @Lazy
     private BusinessService businessService;
 
     @Autowired
+    @Lazy
     private BusinessMatterService businessMatterService;
 
     /**
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/site/service/impl/SiteMatterServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/site/service/impl/SiteMatterServiceImpl.java
index 90a32a2ca54711d3cfabcf3e445efffc90763be8..1ca17a44575a7d1ad084d17e4ec7beefb66a93bc 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/site/service/impl/SiteMatterServiceImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/site/service/impl/SiteMatterServiceImpl.java
@@ -165,4 +165,7 @@ public class SiteMatterServiceImpl extends AbstractCRUDServiceImpl<SiteMatterDao
         return Rest.ok();
     }
 
+
+
+
 }
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/site/service/impl/SiteServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/site/service/impl/SiteServiceImpl.java
index a735d41387f5a04a29cc09c73f211e49b67d45ed..198105095a713645b2251a7e4e5b0d08b8662037 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/site/service/impl/SiteServiceImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/site/service/impl/SiteServiceImpl.java
@@ -62,6 +62,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
@@ -86,14 +87,17 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE
      * 鏍规嵁鐢ㄦ埛id 鏆傚瓨瀵瑰簲绔欑偣鏍� 榛樿0涓哄叏绔欑偣鏍�
      */
     private Map<Long, List<SiteTreeSelect>> siteTreeMap = new HashMap<>();
-
     @Autowired
+    @Lazy
     private AreaService areaService;
     @Autowired
+    @Lazy
     private ModelService modelService;
     @Autowired
+    @Lazy
     private IUserFeign userFeign;
     @Autowired
+    @Lazy
     private UserService userService;
     @Autowired
     private DeptService deptService;
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/site/web/SiteMatterController.java b/base-manager/src/main/java/com/mortals/xhx/module/site/web/SiteMatterController.java
index 43ebb875f224ffefb433d7e584b422e1ec3f4241..a4b9baa26da3f121a120c289fafe3681a3bb10ca 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/site/web/SiteMatterController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/site/web/SiteMatterController.java
@@ -5,19 +5,27 @@ import com.mortals.framework.common.Rest;
 import com.mortals.framework.exception.AppException;
 import com.mortals.framework.model.Context;
 import com.mortals.framework.model.OrderCol;
+import com.mortals.framework.util.ThreadPool;
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
-import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
 import com.mortals.xhx.base.system.param.service.ParamService;
+import com.mortals.xhx.common.code.SourceEnum;
+import com.mortals.xhx.common.code.YesNoEnum;
+import com.mortals.xhx.module.dept.model.DeptEntity;
+import com.mortals.xhx.module.dept.model.DeptQuery;
+import com.mortals.xhx.module.dept.service.DeptService;
+import com.mortals.xhx.module.matter.model.MatterQuery;
+import com.mortals.xhx.module.site.model.SiteEntity;
 import com.mortals.xhx.module.site.model.SiteMatterEntity;
+import com.mortals.xhx.module.site.model.SiteMatterQuery;
+import com.mortals.xhx.module.site.model.SiteQuery;
 import com.mortals.xhx.module.site.service.SiteMatterService;
+import com.mortals.xhx.module.site.service.SiteService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 绔欑偣浜嬮」
@@ -31,6 +39,12 @@ public class SiteMatterController extends BaseCRUDJsonBodyMappingController<Site
 
     @Autowired
     private ParamService paramService;
+    @Autowired
+    private DeptService deptService;
+    @Autowired
+    private SiteService siteService;
+    @Autowired
+    private SiteMatterService siteMatterService;
 
     public SiteMatterController() {
         super.setModuleDesc("绔欑偣浜嬮」");
@@ -50,4 +64,51 @@ public class SiteMatterController extends BaseCRUDJsonBodyMappingController<Site
             query.setEventTypeShowNotList(Arrays.asList("琛屾斂澶勭綒"));
         }
     }
+
+
+    /**
+     * @param list
+     * @param model
+     * @param context
+     * @return
+     * @throws AppException
+     */
+    @Override
+    protected int batchSaveAfter(List<SiteMatterEntity> list, Map<String, Object> model, Context context) throws AppException {
+        //缁熻閮ㄩ棬鍏ラ┗鏁伴噺
+        Runnable runnable = new Runnable() {
+            /**
+             *
+             */
+            @Override
+            public void run() {
+
+                List<SiteEntity> siteEntities = siteService.find(new SiteQuery());
+                for (SiteEntity siteEntity : siteEntities) {
+                    DeptQuery query = new DeptQuery();
+                    query.setSiteId(siteEntity.getId());
+                    List<DeptEntity> deptEntities = deptService.find(query);
+                    for (DeptEntity deptEntity : deptEntities) {
+                        DeptEntity deptQuery = new DeptEntity();
+                        deptQuery.setUpdateTime(new Date());
+
+                        //缁熻鍏ラ┗浜嬮」
+                        SiteMatterQuery siteMatterQuery = new SiteMatterQuery();
+                        siteMatterQuery.setDeptCode(deptEntity.getDeptNumber());
+                        siteMatterQuery.setSource(SourceEnum.鏀垮姟缃�.getValue());
+                        siteMatterQuery.setHallCheckIn(YesNoEnum.YES.getValue());
+                        int incount = siteMatterService.count(siteMatterQuery, null);
+                        deptQuery.setInNum(incount);
+                        DeptEntity condition = new DeptEntity();
+                        condition.setId(deptEntity.getId());
+                        deptService.getDao().update(deptQuery, condition);
+                    }
+                }
+            }
+        };
+        ThreadPool.getInstance().execute(runnable);
+
+
+        return super.batchSaveAfter(list, model, context);
+    }
 }
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/site/web/SiteModelController.java b/base-manager/src/main/java/com/mortals/xhx/module/site/web/SiteModelController.java
index 585dbe9bfe605193c33115015b2c9b4a18d61131..28daf28562f449ac7bb8dc40341ef1ebd232eb93 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/site/web/SiteModelController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/site/web/SiteModelController.java
@@ -1,7 +1,6 @@
 package com.mortals.xhx.module.site.web;
 
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
-import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
 import com.mortals.xhx.base.system.param.service.ParamService;
 import com.mortals.xhx.module.site.model.SiteModelEntity;
 import com.mortals.xhx.module.site.service.SiteModelService;
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/skin/service/impl/SkinFieldServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/skin/service/impl/SkinFieldServiceImpl.java
index 1a55aa8d6ce5f7235ea8209a0d2eff6cbe2428bf..f395418ce97a6cc1ce717145528683b4dac99d56 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/skin/service/impl/SkinFieldServiceImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/skin/service/impl/SkinFieldServiceImpl.java
@@ -1,17 +1,94 @@
 package com.mortals.xhx.module.skin.service.impl;
+
+import com.mortals.framework.exception.AppException;
+import com.mortals.framework.model.Context;
+import com.mortals.xhx.common.utils.BeanUtil;
+import com.mortals.xhx.module.skin.model.SkinFieldQuery;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
 import com.mortals.xhx.module.skin.dao.SkinFieldDao;
 import com.mortals.xhx.module.skin.model.SkinFieldEntity;
 import com.mortals.xhx.module.skin.service.SkinFieldService;
+import org.springframework.util.ObjectUtils;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
 /**
-* SkinFieldService
-* 鐨偆灞炴€у瓧娈甸厤缃� service瀹炵幇
-*
-* @author zxfei
-* @date 2022-05-24
-*/
+ * SkinFieldService
+ * 鐨偆灞炴€у瓧娈甸厤缃� service瀹炵幇
+ *
+ * @author zxfei
+ * @date 2022-05-24
+ */
 @Service("skinFieldService")
 public class SkinFieldServiceImpl extends AbstractCRUDServiceImpl<SkinFieldDao, SkinFieldEntity, Long> implements SkinFieldService {
-    
+
+    /**
+     * @param entity
+     * @param context
+     * @throws AppException
+     */
+    @Override
+    protected void updateAfter(SkinFieldEntity entity, Context context) throws AppException {
+        super.updateAfter(entity, context);
+        if (0L == entity.getSkinId()) {
+            //鏇存柊妯℃澘灞炴€�  鎵€鏈夊紩鐢ㄤ簡褰撳墠妯℃澘鐨勫睘鎬�
+            SkinFieldQuery skinFieldQuery = new SkinFieldQuery();
+            skinFieldQuery.setTemplateId(entity.getTemplateId());
+            skinFieldQuery.setFieldCode(entity.getFieldCode());
+            List<SkinFieldEntity> updateList = this.find(skinFieldQuery, context).stream()
+                    .filter(f -> f.getSkinId() != 0L)
+                    .map(item -> {
+                        item.setFieldName(entity.getFieldName());
+                        item.setFieldType(entity.getFieldType());
+                        item.setFieldOrderNo(entity.getFieldOrderNo());
+                        item.setEnabled(entity.getEnabled());
+                        return item;
+                    })
+                    .collect(Collectors.toList());
+            if (!ObjectUtils.isEmpty(updateList)) {
+                this.update(updateList, context);
+            }
+
+
+        }
+    }
+
+
+    /**
+     * @param entity
+     * @param context
+     * @throws AppException
+     */
+    @Override
+    protected void saveAfter(SkinFieldEntity entity, Context context) throws AppException {
+        super.saveAfter(entity, context);
+        if (0L == entity.getSkinId()) {
+            //鏂板妯℃澘灞炴€�
+            SkinFieldQuery skinFieldQuery = new SkinFieldQuery();
+            skinFieldQuery.setTemplateId(entity.getTemplateId());
+            //skinFieldQuery.setFieldCode(entity.getFieldCode());
+            //閲嶅鎻愪氦
+            Map<Long, Set<String>> collect = this.find(skinFieldQuery, context).stream().collect(Collectors.groupingBy(x -> x.getSkinId(), Collectors.mapping(y -> y.getFieldCode(), Collectors.toSet())));
+            for (Map.Entry<Long, Set<String>> entry : collect.entrySet()) {
+                Long key = entry.getKey();
+                Set<String> value = entry.getValue();
+                if (key == 0L) continue;
+                if (value.contains(entity.getFieldCode())) continue;
+                //鏂板灞炴€�
+                SkinFieldEntity target = new SkinFieldEntity();
+                BeanUtils.copyProperties(entity, target, BeanUtil.getNullPropertyNames(entity));
+                target.setId(null);
+                target.setSkinId(key);
+                this.save(target, context);
+            }
+        }
+
+    }
+
+
 }
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/skin/service/impl/SkinTemplateServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/skin/service/impl/SkinTemplateServiceImpl.java
index 4108b22ef38bd4a9ad3d043b6c66ae6baa9f744f..3fbd183efbea4b30b58f81dea7cf30eacbb1855c 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/skin/service/impl/SkinTemplateServiceImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/skin/service/impl/SkinTemplateServiceImpl.java
@@ -56,8 +56,7 @@ public class SkinTemplateServiceImpl extends AbstractCRUDServiceImpl<SkinTemplat
     }
 
     private void saveSkinFields(SkinTemplateEntity entity, Context context) {
-
-        //鏌ユ壘妯℃澘id,涓庣毊鑲よ偗瀹�
+        //鏌ユ壘妯℃澘id,涓庣毊鑲ょ粦瀹�
         Long[] ids = skinFieldService.find(new SkinFieldQuery().skinId(0L).templateId(entity.getId())).stream().map(item -> item.getId()).toArray(Long[]::new);
         if (!ObjectUtils.isEmpty(ids)) {
             skinFieldService.remove(ids, context);
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/sms/web/SmsSetController.java b/base-manager/src/main/java/com/mortals/xhx/module/sms/web/SmsSetController.java
index 8f67c8b19c98d8b0b9e64115b948f0d82b01e2ad..6814d6b40e4fd552b464797c7b3e4c65819491ab 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/sms/web/SmsSetController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/sms/web/SmsSetController.java
@@ -4,7 +4,6 @@ import com.mortals.framework.annotation.UnAuth;
 import com.mortals.framework.common.Rest;
 import com.mortals.framework.model.Context;
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
-import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
 import com.mortals.xhx.base.system.param.service.ParamService;
 import com.mortals.xhx.module.sms.model.SmsSetEntity;
 import com.mortals.xhx.module.sms.service.SmsSetService;
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/sms/web/SmsTemplateController.java b/base-manager/src/main/java/com/mortals/xhx/module/sms/web/SmsTemplateController.java
index c79dc7aa4385e636398ead3afd3451f224e08c7c..31f55ccb78edbfec94059562858418dc4d853a16 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/sms/web/SmsTemplateController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/sms/web/SmsTemplateController.java
@@ -2,7 +2,6 @@ package com.mortals.xhx.module.sms.web;
 
 import com.mortals.framework.model.Context;
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
-import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
 import com.mortals.xhx.base.system.param.service.ParamService;
 import com.mortals.xhx.module.sms.model.SmsTemplateEntity;
 import com.mortals.xhx.module.sms.service.SmsTemplateService;
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/window/service/impl/WindowHallServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/window/service/impl/WindowHallServiceImpl.java
index d60fa928c3b700f1b81e6e77f8eb63405701eabc..3f2c40f52c4293c0091df9c4811ce2ff824fa4e4 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/window/service/impl/WindowHallServiceImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/window/service/impl/WindowHallServiceImpl.java
@@ -7,6 +7,7 @@ import com.mortals.xhx.module.window.model.WindowEntity;
 import com.mortals.xhx.module.window.model.WindowQuery;
 import com.mortals.xhx.module.window.service.WindowService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
 import com.mortals.framework.exception.AppException;
@@ -31,6 +32,7 @@ import java.util.stream.Collectors;
 public class WindowHallServiceImpl extends AbstractCRUDCacheServiceImpl<WindowHallDao, WindowHallEntity, Long> implements WindowHallService {
 
     @Autowired
+    @Lazy
     private WindowService windowService;
 
     /**
@@ -48,16 +50,5 @@ public class WindowHallServiceImpl extends AbstractCRUDCacheServiceImpl<WindowHa
             WindowEntity windowEntity = collectWin.get(item.getWindowId());
             item.setFromnum(windowEntity == null ? "" : windowEntity.getFromnum());
         });
-
-     /*   List<Long> collect = list.stream().map(i -> i.getWindowId()).distinct().collect(Collectors.toList());
-        if (!ObjectUtils.isEmpty(collect)) {
-            WindowQuery windowQuery = new WindowQuery();
-            windowQuery.setIdList(collect);
-            Map<Long, WindowEntity> collectWin = windowService.find(windowQuery).stream().collect(Collectors.toMap(x -> x.getId(), y -> y, (o, n) -> n));
-            list.forEach(item -> {
-                WindowEntity windowEntity = collectWin.get(item.getWindowId());
-                item.setFromnum(windowEntity == null ? "" : windowEntity.getFromnum());
-            });
-        }*/
     }
 }
\ No newline at end of file
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/window/service/impl/WindowServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/window/service/impl/WindowServiceImpl.java
index 47e687a008e6a8f8b3375b3b290ec7177633e216..7db981d472d6e278acd13ecd17d2d4f64f7c85e3 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/window/service/impl/WindowServiceImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/window/service/impl/WindowServiceImpl.java
@@ -30,6 +30,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
 import com.mortals.xhx.module.window.dao.WindowDao;
@@ -55,14 +56,13 @@ public class WindowServiceImpl extends AbstractCRUDCacheServiceImpl<WindowDao, W
 
     @Autowired
     private WorkmanService workmanService;
-
     @Autowired
     private WindowBusinessService windowBusinessService;
     @Autowired
     private WindowMatterService windowMatterService;
     @Autowired
+    @Lazy
     private WindowHallService windowHallService;
-
     @Autowired
     private BusinessService businessService;
 
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/window/web/WindowBusinessController.java b/base-manager/src/main/java/com/mortals/xhx/module/window/web/WindowBusinessController.java
index 27fe2372bc36ca26a9856a1025058677f57f54ff..30bd02791a1c5a804aaf9fc515a86a612aa03da9 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/window/web/WindowBusinessController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/window/web/WindowBusinessController.java
@@ -1,25 +1,13 @@
 package com.mortals.xhx.module.window.web;
 
-import com.alibaba.fastjson.JSONObject;
-import com.mortals.framework.annotation.UnAuth;
-import com.mortals.framework.common.Rest;
-import com.mortals.framework.exception.AppException;
-import com.mortals.framework.model.Context;
-import com.mortals.framework.util.DataUtil;
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
-import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
 import com.mortals.xhx.base.system.param.service.ParamService;
 import com.mortals.xhx.module.window.model.WindowBusinessEntity;
 import com.mortals.xhx.module.window.service.WindowBusinessService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.HashMap;
-import java.util.Map;
-
 /**
  * 绐楀彛涓氬姟
  *
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/window/web/WindowController.java b/base-manager/src/main/java/com/mortals/xhx/module/window/web/WindowController.java
index 204beada71216bab92560c0adfc3d4d1867df459..ff5326a76879cbf987844fd88e6b0003f794e0c3 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/window/web/WindowController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/window/web/WindowController.java
@@ -7,18 +7,16 @@ import com.mortals.framework.exception.AppException;
 import com.mortals.framework.model.Context;
 import com.mortals.framework.model.PageInfo;
 import com.mortals.framework.model.Result;
+import com.mortals.framework.service.ICacheService;
 import com.mortals.framework.util.DataUtil;
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
-import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
 import com.mortals.xhx.base.system.param.service.ParamService;
 import com.mortals.xhx.module.dept.model.DeptEntity;
 import com.mortals.xhx.module.dept.model.DeptQuery;
 import com.mortals.xhx.module.dept.service.DeptService;
-import com.mortals.xhx.module.matter.model.MatterEntity;
 import com.mortals.xhx.module.site.model.SiteEntity;
 import com.mortals.xhx.module.site.service.SiteService;
 import com.mortals.xhx.module.window.model.WindowEntity;
-import com.mortals.xhx.module.window.service.WindowBusinessService;
 import com.mortals.xhx.module.window.service.WindowService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -28,14 +26,11 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
+import java.util.*;
 
 import static com.mortals.framework.ap.SysConstains.MESSAGE_INFO;
 import static com.mortals.framework.ap.SysConstains.PAGEINFO_KEY;
+import static com.mortals.xhx.common.key.RedisKey.KEY_SEARCH_HALL_BUSINESS_CACHE;
 
 /**
  * 绔欑偣閮ㄩ棬绐楀彛
@@ -54,6 +49,8 @@ public class WindowController extends BaseCRUDJsonBodyMappingController<WindowSe
     private SiteService siteService;
     @Autowired
     private DeptService deptService;
+    @Autowired
+    private ICacheService cacheService;
 
 
     public WindowController() {
@@ -88,6 +85,11 @@ public class WindowController extends BaseCRUDJsonBodyMappingController<WindowSe
         Long windowId = DataUtil.converObj2Long(map.get("windowId"));
         try {
             this.service.addBusinessToWindow(businessIds, windowId, getContext());
+            //鏇存柊瀹岀獥鍙d笟鍔★紝鍒犻櫎缂撳瓨鍒楄〃
+            Set<String> scanSet = cacheService.scan(KEY_SEARCH_HALL_BUSINESS_CACHE);
+            for (String delKey : scanSet) {
+                cacheService.del(delKey);
+            }
             jsonObject.put(KEY_RESULT_DATA, model);
             jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
             jsonObject.put(KEY_RESULT_MSG, "娣诲姞涓氬姟鍒扮獥鍙f垚鍔燂紒");
@@ -186,15 +188,15 @@ public class WindowController extends BaseCRUDJsonBodyMappingController<WindowSe
             if (!ObjectUtils.isEmpty(deptEntity)) {
                 windowEntity.setDeptId(deptEntity.getId());
                 windowEntity.setDeptName(deptEntity.getName());
-            }else {
+            } else {
                 //鍒ゆ柇鏄惁濉叆浜嗛儴闂ㄥ悕绉�
-                if(!ObjectUtils.isEmpty(windowEntity.getDeptName())){
+                if (!ObjectUtils.isEmpty(windowEntity.getDeptName())) {
                     //鏍规嵁閮ㄩ棬鍚嶇О涓庣珯鐐� 鏇存柊绐楀彛
                     DeptQuery deptQuery = new DeptQuery();
                     deptQuery.setName(windowEntity.getDeptName());
-                    deptQuery.setSiteId(DataUtil.converStr2Long(siteId,0L));
+                    deptQuery.setSiteId(DataUtil.converStr2Long(siteId, 0L));
                     deptEntity = deptService.selectOne(deptQuery);
-                    if(!ObjectUtils.isEmpty(deptEntity)){
+                    if (!ObjectUtils.isEmpty(deptEntity)) {
                         windowEntity.setDeptId(deptEntity.getId());
                         windowEntity.setDeptName(deptEntity.getName());
                     }
@@ -204,8 +206,8 @@ public class WindowController extends BaseCRUDJsonBodyMappingController<WindowSe
         //siteId涓虹┖ 鎴杁eptId涓虹┖  鍒欏垹闄� 涓嶅鍏�
         Iterator<WindowEntity> iterator = list.iterator();
         while (iterator.hasNext()) {
-            WindowEntity next =  iterator.next();
-            if(ObjectUtils.isEmpty(next.getSiteId())||ObjectUtils.isEmpty(next.getDeptId())){
+            WindowEntity next = iterator.next();
+            if (ObjectUtils.isEmpty(next.getSiteId()) || ObjectUtils.isEmpty(next.getDeptId())) {
                 iterator.remove();
             }
         }
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/window/web/WindowMatterController.java b/base-manager/src/main/java/com/mortals/xhx/module/window/web/WindowMatterController.java
index bf1d5c11ed897601d1db307988f4174e12a9af0d..6392d6a7bece06fc099873739adc31773a93ea4c 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/window/web/WindowMatterController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/window/web/WindowMatterController.java
@@ -2,18 +2,13 @@ package com.mortals.xhx.module.window.web;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.serializer.SerializerFeature;
-import com.mortals.framework.annotation.UnAuth;
 import com.mortals.framework.ap.GlobalSysInfo;
-import com.mortals.framework.common.Rest;
 import com.mortals.framework.exception.AppException;
 import com.mortals.framework.model.Context;
 import com.mortals.framework.model.OrderCol;
 import com.mortals.framework.util.HttpUtil;
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
-import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
 import com.mortals.xhx.base.system.param.service.ParamService;
-import com.mortals.xhx.common.code.YesNoEnum;
-import com.mortals.xhx.feign.rsp.ApiResp;
 import com.mortals.xhx.module.window.model.WindowMatterEntity;
 import com.mortals.xhx.module.window.service.WindowMatterService;
 import lombok.extern.slf4j.Slf4j;
diff --git a/base-manager/src/main/resources/sqlmap/module/dept/DeptMapperExt.xml b/base-manager/src/main/resources/sqlmap/module/dept/DeptMapperExt.xml
index fd8fca6d1dbff7c270363ad1b81ce875fa252d78..a243b155564fd621b9dc737bd9acc625f1605b7d 100644
--- a/base-manager/src/main/resources/sqlmap/module/dept/DeptMapperExt.xml
+++ b/base-manager/src/main/resources/sqlmap/module/dept/DeptMapperExt.xml
@@ -60,4 +60,23 @@
     </select>
 
 
+    <!-- 鑾峰彇鎵€鏈夊瓨鍦ㄤ笟鍔$殑閮ㄩ棬鍒楄〃 -->
+    <select id="getDeptListByExistBusiness" parameterType="paramDto" resultMap="DeptEntity-Map">
+        SELECT DISTINCT
+           <include refid="_columns"/>
+        FROM
+            mortals_sys_dept a,
+            mortals_sys_window t1,
+            mortals_sys_window_business t2
+        WHERE
+            a.id = t1.deptId
+            AND t1.id = t2.windowId and
+            <trim prefixOverrides="and" prefix="">
+                <if test="condition.siteId!=null">
+                     a.siteId = #{condition.siteId}
+                </if>
+            </trim>
+    </select>
+
+
 </mapper>
\ No newline at end of file
diff --git a/base-manager/src/main/resources/sqlmap/module/dimension/DimensionMapper.xml b/base-manager/src/main/resources/sqlmap/module/dimension/DimensionMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..517c90e80e07c49454b5bc7df09c6b8b59815aff
--- /dev/null
+++ b/base-manager/src/main/resources/sqlmap/module/dimension/DimensionMapper.xml
@@ -0,0 +1,639 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"mybatis-3-mapper.dtd">
+<mapper namespace="com.mortals.xhx.module.dimension.dao.ibatis.DimensionDaoImpl">
+
+    <!-- 瀛楁鍜屽睘鎬ф槧灏� -->
+    <resultMap type="DimensionEntity" id="DimensionEntity-Map">
+            <id  property="id" column="id" />
+            <result property="dimensionCode" column="dimension_code" />
+            <result property="dimensionName" column="dimension_name" />
+            <result property="dimensionValue" column="dimension_value" />
+            <result property="dimensionType" column="dimension_type" />
+            <result property="createTime" column="createTime" />
+            <result property="createUserId" column="createUserId" />
+            <result property="updateUserId" column="updateUserId" />
+            <result property="updateTime" column="updateTime" />
+            
+    </resultMap>
+
+
+    <!-- 琛ㄦ墍鏈夊垪 -->
+    <sql id="_columns">
+        <trim suffixOverrides="," suffix="">
+                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('id') or colPickMode == 1 and data.containsKey('id')))">
+                    a.id,
+                </if>
+                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('dimensionCode') or colPickMode == 1 and data.containsKey('dimensionCode')))">
+                    a.dimension_code,
+                </if>
+                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('dimensionName') or colPickMode == 1 and data.containsKey('dimensionName')))">
+                    a.dimension_name,
+                </if>
+                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('dimensionValue') or colPickMode == 1 and data.containsKey('dimensionValue')))">
+                    a.dimension_value,
+                </if>
+                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('dimensionType') or colPickMode == 1 and data.containsKey('dimensionType')))">
+                    a.dimension_type,
+                </if>
+                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
+                    a.createTime,
+                </if>
+                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserId') or colPickMode == 1 and data.containsKey('createUserId')))">
+                    a.createUserId,
+                </if>
+                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateUserId') or colPickMode == 1 and data.containsKey('updateUserId')))">
+                    a.updateUserId,
+                </if>
+                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))">
+                    a.updateTime,
+                </if>
+        </trim>
+    </sql>
+    <!-- 鏂板 鍖哄垎涓婚敭鑷鍔犺繕鏄笟鍔℃彃鍏� -->
+    <insert id="insert" parameterType="DimensionEntity"  useGeneratedKeys="true" keyProperty="id">
+        insert into mortals_xhx_dimension
+        (dimension_code,dimension_name,dimension_value,dimension_type,createTime,createUserId,updateUserId,updateTime)
+        VALUES
+        (#{dimensionCode},#{dimensionName},#{dimensionValue},#{dimensionType},#{createTime},#{createUserId},#{updateUserId},#{updateTime})
+    </insert>
+
+    <!-- 鎵归噺鏂板 -->
+    <insert id="insertBatch" parameterType="paramDto">
+        insert into mortals_xhx_dimension
+        (dimension_code,dimension_name,dimension_value,dimension_type,createTime,createUserId,updateUserId,updateTime)
+        VALUES
+        <foreach collection="data.dataList" item="item" index="index" separator="," >
+            (#{item.dimensionCode},#{item.dimensionName},#{item.dimensionValue},#{item.dimensionType},#{item.createTime},#{item.createUserId},#{item.updateUserId},#{item.updateTime})
+        </foreach>
+    </insert>
+
+
+    <!-- 鏍规嵁ParamDto鏇存柊 -->
+    <update id="update" parameterType="paramDto">
+        update mortals_xhx_dimension as a
+        set
+        <trim suffixOverrides="," suffix="">
+            <if test="(colPickMode==0 and data.containsKey('dimensionCode')) or (colPickMode==1 and !data.containsKey('dimensionCode'))">
+                a.dimension_code=#{data.dimensionCode},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('dimensionName')) or (colPickMode==1 and !data.containsKey('dimensionName'))">
+                a.dimension_name=#{data.dimensionName},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('dimensionValue')) or (colPickMode==1 and !data.containsKey('dimensionValue'))">
+                a.dimension_value=#{data.dimensionValue},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('dimensionType')) or (colPickMode==1 and !data.containsKey('dimensionType'))">
+                a.dimension_type=#{data.dimensionType},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('dimensionTypeIncrement')) or (colPickMode==1 and !data.containsKey('dimensionTypeIncrement'))">
+                a.dimension_type=ifnull(a.dimension_type,0) + #{data.dimensionTypeIncrement},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
+                a.createTime=#{data.createTime},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('createUserId')) or (colPickMode==1 and !data.containsKey('createUserId'))">
+                a.createUserId=#{data.createUserId},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('createUserIdIncrement')) or (colPickMode==1 and !data.containsKey('createUserIdIncrement'))">
+                a.createUserId=ifnull(a.createUserId,0) + #{data.createUserIdIncrement},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('updateUserId')) or (colPickMode==1 and !data.containsKey('updateUserId'))">
+                a.updateUserId=#{data.updateUserId},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('updateUserIdIncrement')) or (colPickMode==1 and !data.containsKey('updateUserIdIncrement'))">
+                a.updateUserId=ifnull(a.updateUserId,0) + #{data.updateUserIdIncrement},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('updateTime')) or (colPickMode==1 and !data.containsKey('updateTime'))">
+                a.updateTime=#{data.updateTime},
+            </if>
+        </trim>
+        <trim suffixOverrides="where" suffix="">
+            where
+            <trim prefixOverrides="and" prefix="">
+                <include refid="_condition_"/>
+            </trim>
+        </trim>
+    </update>
+    <!-- 鎵归噺鏇存柊 -->
+    <update id="updateBatch" parameterType="paramDto">
+        update mortals_xhx_dimension as a
+        <trim prefix="set" suffixOverrides=",">
+                <trim prefix="dimension_code=(case" suffix="ELSE dimension_code end),">
+                    <foreach collection="data.dataList" item="item" index="index" separator="" >
+                        <if test="(colPickMode==0 and item.containsKey('dimensionCode')) or (colPickMode==1 and !item.containsKey('dimensionCode'))">
+                            when a.id=#{item.id} then #{item.dimensionCode}
+                        </if>
+                    </foreach>
+                </trim>
+                <trim prefix="dimension_name=(case" suffix="ELSE dimension_name end),">
+                    <foreach collection="data.dataList" item="item" index="index" separator="" >
+                        <if test="(colPickMode==0 and item.containsKey('dimensionName')) or (colPickMode==1 and !item.containsKey('dimensionName'))">
+                            when a.id=#{item.id} then #{item.dimensionName}
+                        </if>
+                    </foreach>
+                </trim>
+                <trim prefix="dimension_value=(case" suffix="ELSE dimension_value end),">
+                    <foreach collection="data.dataList" item="item" index="index" separator="" >
+                        <if test="(colPickMode==0 and item.containsKey('dimensionValue')) or (colPickMode==1 and !item.containsKey('dimensionValue'))">
+                            when a.id=#{item.id} then #{item.dimensionValue}
+                        </if>
+                    </foreach>
+                </trim>
+                        <trim prefix="dimension_type=(case" suffix="ELSE dimension_type end),">
+                            <foreach collection="data.dataList" item="item" index="index" separator="" >
+                                <choose>
+                                    <when test="(colPickMode==0 and item.containsKey('dimensionType')) or (colPickMode==1 and !item.containsKey('dimensionType'))">
+                                        when a.id=#{item.id} then #{item.dimensionType}
+                                    </when>
+                                    <when test="(colPickMode==0 and item.containsKey('dimensionTypeIncrement')) or (colPickMode==1 and !item.containsKey('dimensionTypeIncrement'))">
+                                        when a.id=#{item.id} then ifnull(a.dimension_type,0) + #{item.dimensionTypeIncrement}
+                                    </when>
+                                </choose>
+                            </foreach>
+                        </trim>
+                <trim prefix="createTime=(case" suffix="ELSE createTime end),">
+                    <foreach collection="data.dataList" item="item" index="index" separator="" >
+                        <if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))">
+                            when a.id=#{item.id} then #{item.createTime}
+                        </if>
+                    </foreach>
+                </trim>
+                        <trim prefix="createUserId=(case" suffix="ELSE createUserId end),">
+                            <foreach collection="data.dataList" item="item" index="index" separator="" >
+                                <choose>
+                                    <when test="(colPickMode==0 and item.containsKey('createUserId')) or (colPickMode==1 and !item.containsKey('createUserId'))">
+                                        when a.id=#{item.id} then #{item.createUserId}
+                                    </when>
+                                    <when test="(colPickMode==0 and item.containsKey('createUserIdIncrement')) or (colPickMode==1 and !item.containsKey('createUserIdIncrement'))">
+                                        when a.id=#{item.id} then ifnull(a.createUserId,0) + #{item.createUserIdIncrement}
+                                    </when>
+                                </choose>
+                            </foreach>
+                        </trim>
+                        <trim prefix="updateUserId=(case" suffix="ELSE updateUserId end),">
+                            <foreach collection="data.dataList" item="item" index="index" separator="" >
+                                <choose>
+                                    <when test="(colPickMode==0 and item.containsKey('updateUserId')) or (colPickMode==1 and !item.containsKey('updateUserId'))">
+                                        when a.id=#{item.id} then #{item.updateUserId}
+                                    </when>
+                                    <when test="(colPickMode==0 and item.containsKey('updateUserIdIncrement')) or (colPickMode==1 and !item.containsKey('updateUserIdIncrement'))">
+                                        when a.id=#{item.id} then ifnull(a.updateUserId,0) + #{item.updateUserIdIncrement}
+                                    </when>
+                                </choose>
+                            </foreach>
+                        </trim>
+                <trim prefix="updateTime=(case" suffix="ELSE updateTime end),">
+                    <foreach collection="data.dataList" item="item" index="index" separator="" >
+                        <if test="(colPickMode==0 and item.containsKey('updateTime')) or (colPickMode==1 and !item.containsKey('updateTime'))">
+                            when a.id=#{item.id} then #{item.updateTime}
+                        </if>
+                    </foreach>
+                </trim>
+        </trim>
+        where id in
+        <foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
+            #{item.id}
+        </foreach>
+    </update>
+    <!-- 鏍规嵁涓诲仴鏌ヨ -->
+    <select id="getByKey" parameterType="paramDto" resultMap="DimensionEntity-Map">
+        select <include refid="_columns"/>
+        from mortals_xhx_dimension as a
+        where a.id=#{condition.id}
+    </select>
+    <!-- 鏍规嵁涓诲仴鍒犻櫎 -->
+    <delete id="deleteByKey" parameterType="paramDto">
+        delete a.* from mortals_xhx_dimension as a where a.id=#{condition.id}
+    </delete>
+    <!-- 鏍规嵁涓诲仴鍒犻櫎涓€鎵癸紝閽堝鍗曚竴涓诲仴鏈夋晥 -->
+    <delete id="deleteByKeys">
+        delete from mortals_xhx_dimension where id in
+        <foreach collection="array" item="item" index="index" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </delete>
+    <!-- 鏍规嵁涓诲仴鍒楄〃鍒犻櫎涓€鎵癸紝閽堝鍗曚竴涓诲仴鏈夋晥 -->
+    <delete id="deleteByKeyList">
+        delete from mortals_xhx_dimension where id in
+        <foreach collection="list" item="item" index="index" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </delete>
+
+    <!-- 鏍规嵁瀵硅薄鍒楄〃鍒犻櫎涓€鎵癸紝閽堝鍗曚竴涓诲仴鏈夋晥 -->
+    <delete id="deleteByEntityList">
+        delete from mortals_xhx_dimension where id in
+        <foreach collection="list" item="item" index="index" open="(" separator="," close=")">
+            #{item.id}
+        </foreach>
+    </delete>
+    <!-- 鏍规嵁paramDto鍒犻櫎涓€鎵� -->
+    <delete id="deleteByMap" parameterType="paramDto">
+        delete a.* from mortals_xhx_dimension as a
+        <trim suffixOverrides="where" suffix="">
+            where
+            <trim prefixOverrides="and" prefix="">
+                <include refid="_condition_"/>
+            </trim>
+        </trim>
+    </delete>
+    <!-- 鑾峰彇鍒楄〃 -->
+    <select id="getList" parameterType="paramDto" resultMap="DimensionEntity-Map">
+        select <include refid="_columns"/>
+        from mortals_xhx_dimension as a
+        <trim suffixOverrides="where" suffix="">
+            where
+            <trim prefixOverrides="and" prefix="">
+                <include refid="_condition_"/>
+            </trim>
+        </trim>
+        <include refid="_orderCols_"/>
+    </select>
+
+
+
+    <!-- 鑾峰彇 -->
+    <select id="getListCount" parameterType="paramDto" resultType="int">
+        select count(1)
+        from mortals_xhx_dimension as a
+        <trim suffixOverrides="where" suffix="">
+            where
+            <trim prefixOverrides="and" prefix="">
+                <include refid="_condition_"/>
+            </trim>
+        </trim>
+    </select>
+    <!-- 鏉′欢鏄犲皠 -->
+    <sql id="_condition_">
+        <if test="condition != null and !condition.isEmpty()">
+            <!-- 鏉′欢鏄犲皠-鏅€氭潯浠� -->
+            <include refid="_condition_param_">
+                <property name="_conditionParam_" value="condition"/>
+                <property name="_conditionType_" value="and"/>
+            </include>
+            <!-- 鏉′欢鏄犲皠-闆嗗悎涔嬮棿浣跨敤AND锛岄泦鍚堜腑鍏冪礌浣跨敤OR-(list[0].1 or list[0].2) and (list[1].3 or list[1].4) -->
+            <if test="condition.containsKey('andConditionList') and !condition.andConditionList.isEmpty()">
+                and
+                <foreach collection="condition.andConditionList" open="(" close=")" index="index" item="andCondition" separator=" and ">
+                    <trim prefixOverrides="or" prefix="(" suffix=")">
+                        <include refid="_condition_param_">
+                            <property name="_conditionParam_" value="andCondition"/>
+                            <property name="_conditionType_" value="or"/>
+                        </include>
+                    </trim>
+                </foreach>
+            </if>
+            <!-- 鏉′欢鏄犲皠-闆嗗悎涔嬮棿浣跨敤OR锛岄泦鍚堜腑鍏冪礌浣跨敤AND-(list[0].1 and list[0].2) or (list[1].3 and list[1].4) -->
+            <if test="condition.containsKey('orConditionList') and !condition.orConditionList.isEmpty()">
+                and
+                <foreach collection="condition.orConditionList" open="(" close=")" index="index" item="orCondition" separator=" or ">
+                    <trim prefixOverrides="and" prefix="(" suffix=")">
+                        <include refid="_condition_param_">
+                            <property name="_conditionParam_" value="orCondition"/>
+                            <property name="_conditionType_" value="and"/>
+                        </include>
+                    </trim>
+                </foreach>
+            </if>
+        </if>
+    </sql>
+    <!-- 鏉′欢鏄犲皠-浠e弬鏁� -->
+    <sql id="_condition_param_">
+        <bind name="conditionParamRef" value="${_conditionParam_}"/>
+        <if test="conditionParamRef.containsKey('id')">
+            <if test="conditionParamRef.id != null">
+                ${_conditionType_} a.id=#{${_conditionParam_}.id}
+            </if>
+        </if>
+            <if test="conditionParamRef.containsKey('id')">
+                <if test="conditionParamRef.id != null ">
+                    ${_conditionType_} a.id = #{${_conditionParam_}.id}
+                </if>
+                <if test="conditionParamRef.id == null">
+                    ${_conditionType_} a.id is null
+                </if>
+            </if>
+            <if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
+                ${_conditionType_} a.id in
+                <foreach collection="conditionParamRef.idList" open="(" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="conditionParamRef.containsKey('idNotList') and conditionParamRef.idNotList.size() > 0">
+                ${_conditionType_} a.id not in
+                <foreach collection="conditionParamRef.idNotList" open="(" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="conditionParamRef.containsKey('idStart') and conditionParamRef.idStart != null">
+                ${_conditionType_} a.id <![CDATA[ >= ]]> #{${_conditionParam_}.idStart}
+            </if>
+            <if test="conditionParamRef.containsKey('idEnd') and conditionParamRef.idEnd != null">
+                ${_conditionType_} a.id <![CDATA[ <= ]]> #{${_conditionParam_}.idEnd}
+            </if>
+
+
+            <if test="conditionParamRef.containsKey('dimensionCode')">
+                <if test="conditionParamRef.dimensionCode != null and conditionParamRef.dimensionCode != ''">
+                    ${_conditionType_} a.dimension_code like #{${_conditionParam_}.dimensionCode}
+                </if>
+                <if test="conditionParamRef.dimensionCode == null">
+                    ${_conditionType_} a.dimension_code is null
+                </if>
+            </if>
+            <if test="conditionParamRef.containsKey('dimensionCodeList') and conditionParamRef.dimensionCodeList.size() > 0">
+                ${_conditionType_} a.dimension_code in
+                <foreach collection="conditionParamRef.dimensionCodeList" open="(" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="conditionParamRef.containsKey('dimensionCodeNotList') and conditionParamRef.dimensionCodeNotList.size() > 0">
+                ${_conditionType_} a.dimension_code not in
+                <foreach collection="conditionParamRef.dimensionCodeNotList" open="(" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+
+            <if test="conditionParamRef.containsKey('dimensionName')">
+                <if test="conditionParamRef.dimensionName != null and conditionParamRef.dimensionName != ''">
+                    ${_conditionType_} a.dimension_name like #{${_conditionParam_}.dimensionName}
+                </if>
+                <if test="conditionParamRef.dimensionName == null">
+                    ${_conditionType_} a.dimension_name is null
+                </if>
+            </if>
+            <if test="conditionParamRef.containsKey('dimensionNameList') and conditionParamRef.dimensionNameList.size() > 0">
+                ${_conditionType_} a.dimension_name in
+                <foreach collection="conditionParamRef.dimensionNameList" open="(" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="conditionParamRef.containsKey('dimensionNameNotList') and conditionParamRef.dimensionNameNotList.size() > 0">
+                ${_conditionType_} a.dimension_name not in
+                <foreach collection="conditionParamRef.dimensionNameNotList" open="(" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+
+            <if test="conditionParamRef.containsKey('dimensionValue')">
+                <if test="conditionParamRef.dimensionValue != null and conditionParamRef.dimensionValue != ''">
+                    ${_conditionType_} a.dimension_value like #{${_conditionParam_}.dimensionValue}
+                </if>
+                <if test="conditionParamRef.dimensionValue == null">
+                    ${_conditionType_} a.dimension_value is null
+                </if>
+            </if>
+            <if test="conditionParamRef.containsKey('dimensionValueList') and conditionParamRef.dimensionValueList.size() > 0">
+                ${_conditionType_} a.dimension_value in
+                <foreach collection="conditionParamRef.dimensionValueList" open="(" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="conditionParamRef.containsKey('dimensionValueNotList') and conditionParamRef.dimensionValueNotList.size() > 0">
+                ${_conditionType_} a.dimension_value not in
+                <foreach collection="conditionParamRef.dimensionValueNotList" open="(" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="conditionParamRef.containsKey('dimensionType')">
+                <if test="conditionParamRef.dimensionType != null ">
+                    ${_conditionType_} a.dimension_type = #{${_conditionParam_}.dimensionType}
+                </if>
+                <if test="conditionParamRef.dimensionType == null">
+                    ${_conditionType_} a.dimension_type is null
+                </if>
+            </if>
+            <if test="conditionParamRef.containsKey('dimensionTypeList') and conditionParamRef.dimensionTypeList.size() > 0">
+                ${_conditionType_} a.dimension_type in
+                <foreach collection="conditionParamRef.dimensionTypeList" open="(" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="conditionParamRef.containsKey('dimensionTypeNotList') and conditionParamRef.dimensionTypeNotList.size() > 0">
+                ${_conditionType_} a.dimension_type not in
+                <foreach collection="conditionParamRef.dimensionTypeNotList" open="(" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="conditionParamRef.containsKey('dimensionTypeStart') and conditionParamRef.dimensionTypeStart != null">
+                ${_conditionType_} a.dimension_type <![CDATA[ >= ]]> #{${_conditionParam_}.dimensionTypeStart}
+            </if>
+            <if test="conditionParamRef.containsKey('dimensionTypeEnd') and conditionParamRef.dimensionTypeEnd != null">
+                ${_conditionType_} a.dimension_type <![CDATA[ <= ]]> #{${_conditionParam_}.dimensionTypeEnd}
+            </if>
+
+
+            <if test="conditionParamRef.containsKey('createTime')">
+                <if test="conditionParamRef.createTime != null ">
+                    ${_conditionType_} a.createTime = #{${_conditionParam_}.createTime}
+                </if>
+                <if test="conditionParamRef.createTime == null">
+                    ${_conditionType_} a.createTime is null
+                </if>
+            </if>
+            <if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
+                ${_conditionType_} a.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
+            </if>
+            <if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
+                ${_conditionType_} a.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
+            </if>
+            <if test="conditionParamRef.containsKey('createUserId')">
+                <if test="conditionParamRef.createUserId != null ">
+                    ${_conditionType_} a.createUserId = #{${_conditionParam_}.createUserId}
+                </if>
+                <if test="conditionParamRef.createUserId == null">
+                    ${_conditionType_} a.createUserId is null
+                </if>
+            </if>
+            <if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
+                ${_conditionType_} a.createUserId in
+                <foreach collection="conditionParamRef.createUserIdList" open="(" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="conditionParamRef.containsKey('createUserIdNotList') and conditionParamRef.createUserIdNotList.size() > 0">
+                ${_conditionType_} a.createUserId not in
+                <foreach collection="conditionParamRef.createUserIdNotList" open="(" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="conditionParamRef.containsKey('createUserIdStart') and conditionParamRef.createUserIdStart != null">
+                ${_conditionType_} a.createUserId <![CDATA[ >= ]]> #{${_conditionParam_}.createUserIdStart}
+            </if>
+            <if test="conditionParamRef.containsKey('createUserIdEnd') and conditionParamRef.createUserIdEnd != null">
+                ${_conditionType_} a.createUserId <![CDATA[ <= ]]> #{${_conditionParam_}.createUserIdEnd}
+            </if>
+
+            <if test="conditionParamRef.containsKey('updateUserId')">
+                <if test="conditionParamRef.updateUserId != null ">
+                    ${_conditionType_} a.updateUserId = #{${_conditionParam_}.updateUserId}
+                </if>
+                <if test="conditionParamRef.updateUserId == null">
+                    ${_conditionType_} a.updateUserId is null
+                </if>
+            </if>
+            <if test="conditionParamRef.containsKey('updateUserIdList') and conditionParamRef.updateUserIdList.size() > 0">
+                ${_conditionType_} a.updateUserId in
+                <foreach collection="conditionParamRef.updateUserIdList" open="(" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="conditionParamRef.containsKey('updateUserIdNotList') and conditionParamRef.updateUserIdNotList.size() > 0">
+                ${_conditionType_} a.updateUserId not in
+                <foreach collection="conditionParamRef.updateUserIdNotList" open="(" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="conditionParamRef.containsKey('updateUserIdStart') and conditionParamRef.updateUserIdStart != null">
+                ${_conditionType_} a.updateUserId <![CDATA[ >= ]]> #{${_conditionParam_}.updateUserIdStart}
+            </if>
+            <if test="conditionParamRef.containsKey('updateUserIdEnd') and conditionParamRef.updateUserIdEnd != null">
+                ${_conditionType_} a.updateUserId <![CDATA[ <= ]]> #{${_conditionParam_}.updateUserIdEnd}
+            </if>
+
+
+            <if test="conditionParamRef.containsKey('updateTime')">
+                <if test="conditionParamRef.updateTime != null ">
+                    ${_conditionType_} a.updateTime = #{${_conditionParam_}.updateTime}
+                </if>
+                <if test="conditionParamRef.updateTime == null">
+                    ${_conditionType_} a.updateTime is null
+                </if>
+            </if>
+            <if test="conditionParamRef.containsKey('updateTimeStart') and conditionParamRef.updateTimeStart != null and conditionParamRef.updateTimeStart!=''">
+                ${_conditionType_} a.updateTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
+            </if>
+            <if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''">
+                ${_conditionType_} a.updateTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
+            </if>
+    </sql>
+    <sql id="_orderCols_">
+        <if test="orderColList != null and !orderColList.isEmpty()">
+            order by
+                    <if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
+                        field(a.id,
+                        <foreach collection="conditionParamRef.idList" open="" close=")" index="index" item="item" separator=",">
+                            #{item}
+                        </foreach>
+                        ,
+                    </if>
+                    <if test="conditionParamRef.containsKey('dimensionTypeList') and conditionParamRef.dimensionTypeList.size() > 0">
+                        field(a.dimensionType,
+                        <foreach collection="conditionParamRef.dimensionTypeList" open="" close=")" index="index" item="item" separator=",">
+                            #{item}
+                        </foreach>
+                        ,
+                    </if>
+                    <if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
+                        field(a.createUserId,
+                        <foreach collection="conditionParamRef.createUserIdList" open="" close=")" index="index" item="item" separator=",">
+                            #{item}
+                        </foreach>
+                        ,
+                    </if>
+                    <if test="conditionParamRef.containsKey('updateUserIdList') and conditionParamRef.updateUserIdList.size() > 0">
+                        field(a.updateUserId,
+                        <foreach collection="conditionParamRef.updateUserIdList" open="" close=")" index="index" item="item" separator=",">
+                            #{item}
+                        </foreach>
+                        ,
+                    </if>
+            <trim suffixOverrides=","  suffix="">
+                <foreach collection="orderColList" open="" close="" index="index" item="item" separator=",">
+                     a.${item.colName} ${item.sortKind}
+                </foreach>
+            </trim>
+        </if>
+        <if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()">
+            order by
+                    <if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
+                        field(a.id,
+                        <foreach collection="conditionParamRef.idList" open="" close=")" index="index" item="item" separator=",">
+                            #{item}
+                        </foreach>
+                        ,
+                    </if>
+                    <if test="conditionParamRef.containsKey('dimensionTypeList') and conditionParamRef.dimensionTypeList.size() > 0">
+                        field(a.dimensionType,
+                        <foreach collection="conditionParamRef.dimensionTypeList" open="" close=")" index="index" item="item" separator=",">
+                            #{item}
+                        </foreach>
+                        ,
+                    </if>
+                    <if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
+                        field(a.createUserId,
+                        <foreach collection="conditionParamRef.createUserIdList" open="" close=")" index="index" item="item" separator=",">
+                            #{item}
+                        </foreach>
+                        ,
+                    </if>
+                    <if test="conditionParamRef.containsKey('updateUserIdList') and conditionParamRef.updateUserIdList.size() > 0">
+                        field(a.updateUserId,
+                        <foreach collection="conditionParamRef.updateUserIdList" open="" close=")" index="index" item="item" separator=",">
+                            #{item}
+                        </foreach>
+                        ,
+                    </if>
+            <trim suffixOverrides=","  suffix="">
+                    <if test="orderCol.containsKey('id')">
+                        a.id
+                        <if test='orderCol.id != null and "DESC".equalsIgnoreCase(orderCol.id)'>DESC</if>
+                        ,
+                    </if>
+                    <if test="orderCol.containsKey('dimensionCode')">
+                        a.dimension_code
+                        <if test='orderCol.dimensionCode != null and "DESC".equalsIgnoreCase(orderCol.dimensionCode)'>DESC</if>
+                        ,
+                    </if>
+                    <if test="orderCol.containsKey('dimensionName')">
+                        a.dimension_name
+                        <if test='orderCol.dimensionName != null and "DESC".equalsIgnoreCase(orderCol.dimensionName)'>DESC</if>
+                        ,
+                    </if>
+                    <if test="orderCol.containsKey('dimensionValue')">
+                        a.dimension_value
+                        <if test='orderCol.dimensionValue != null and "DESC".equalsIgnoreCase(orderCol.dimensionValue)'>DESC</if>
+                        ,
+                    </if>
+                    <if test="orderCol.containsKey('dimensionType')">
+                        a.dimension_type
+                        <if test='orderCol.dimensionType != null and "DESC".equalsIgnoreCase(orderCol.dimensionType)'>DESC</if>
+                        ,
+                    </if>
+                    <if test="orderCol.containsKey('createTime')">
+                        a.createTime
+                        <if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
+                        ,
+                    </if>
+                    <if test="orderCol.containsKey('createUserId')">
+                        a.createUserId
+                        <if test='orderCol.createUserId != null and "DESC".equalsIgnoreCase(orderCol.createUserId)'>DESC</if>
+                        ,
+                    </if>
+                    <if test="orderCol.containsKey('updateUserId')">
+                        a.updateUserId
+                        <if test='orderCol.updateUserId != null and "DESC".equalsIgnoreCase(orderCol.updateUserId)'>DESC</if>
+                        ,
+                    </if>
+                    <if test="orderCol.containsKey('updateTime')">
+                        a.updateTime
+                        <if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if>
+                        ,
+                    </if>
+            </trim>
+        </if>
+
+
+    </sql>
+    <sql id="_group_by_">
+        <if test="groupList != null and !groupList.isEmpty()">
+            GROUP BY
+            <trim suffixOverrides=","  suffix="">
+                <foreach collection="groupList" open="" close="" index="index" item="item" separator=",">
+                    ${item}
+                </foreach>
+            </trim>
+        </if>
+    </sql>
+</mapper>
\ No newline at end of file
diff --git a/base-manager/src/main/resources/sqlmap/module/dimension/DimensionResourceRuleMapper.xml b/base-manager/src/main/resources/sqlmap/module/dimension/DimensionResourceRuleMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..678da0d5d65133604673a2ff93bdff58de46fe27
--- /dev/null
+++ b/base-manager/src/main/resources/sqlmap/module/dimension/DimensionResourceRuleMapper.xml
@@ -0,0 +1,896 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "mybatis-3-mapper.dtd">
+<mapper namespace="com.mortals.xhx.module.dimension.dao.ibatis.DimensionResourceRuleDaoImpl">
+
+    <!-- 瀛楁鍜屽睘鎬ф槧灏� -->
+    <resultMap type="DimensionResourceRuleEntity" id="DimensionResourceRuleEntity-Map">
+        <id  property="id" column="id" />
+        <result property="roleId" column="role_id" />
+        <result property="resourceId" column="resource_id" />
+        <result property="ruleCode" column="rule_code" />
+        <result property="ruleName" column="rule_name" />
+        <result property="ruleCondition" column="rule_condition" />
+        <result property="ruleValue" column="rule_value" />
+        <result property="ruleType" column="rule_type" />
+        <result property="createTime" column="create_time" />
+        <result property="createUserId" column="create_user_id" />
+        <result property="updateUserId" column="update_user_id" />
+        <result property="updateTime" column="update_time" />
+        <result property="roleName" column="role_name" />
+        <result property="resourceName" column="resource_name" />
+
+    </resultMap>
+
+
+    <!-- 琛ㄦ墍鏈夊垪 -->
+    <sql id="_columns">
+        <trim suffixOverrides="," suffix="">
+            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('id') or colPickMode == 1 and data.containsKey('id')))">
+                a.id,
+            </if>
+            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('roleId') or colPickMode == 1 and data.containsKey('roleId')))">
+                a.role_id,
+            </if>
+            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('resourceId') or colPickMode == 1 and data.containsKey('resourceId')))">
+                a.resource_id,
+            </if>
+            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('ruleCode') or colPickMode == 1 and data.containsKey('ruleCode')))">
+                a.rule_code,
+            </if>
+            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('ruleName') or colPickMode == 1 and data.containsKey('ruleName')))">
+                a.rule_name,
+            </if>
+            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('ruleCondition') or colPickMode == 1 and data.containsKey('ruleCondition')))">
+                a.rule_condition,
+            </if>
+            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('ruleValue') or colPickMode == 1 and data.containsKey('ruleValue')))">
+                a.rule_value,
+            </if>
+            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('ruleType') or colPickMode == 1 and data.containsKey('ruleType')))">
+                a.rule_type,
+            </if>
+            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
+                a.create_time,
+            </if>
+            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserId') or colPickMode == 1 and data.containsKey('createUserId')))">
+                a.create_user_id,
+            </if>
+            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateUserId') or colPickMode == 1 and data.containsKey('updateUserId')))">
+                a.update_user_id,
+            </if>
+            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))">
+                a.update_time,
+            </if>
+            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('roleName') or colPickMode == 1 and data.containsKey('roleName')))">
+                a.role_name,
+            </if>
+            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('resourceName') or colPickMode == 1 and data.containsKey('resourceName')))">
+                a.resource_name,
+            </if>
+        </trim>
+    </sql>
+    <!-- 鏂板 鍖哄垎涓婚敭鑷鍔犺繕鏄笟鍔℃彃鍏� -->
+    <insert id="insert" parameterType="DimensionResourceRuleEntity"  useGeneratedKeys="true" keyProperty="id">
+        insert into mortals_xhx_dimension_resource_rule
+        (role_id,resource_id,rule_code,rule_name,rule_condition,rule_value,rule_type,create_time,create_user_id,update_user_id,update_time,role_name,resource_name)
+        VALUES
+        (#{roleId},#{resourceId},#{ruleCode},#{ruleName},#{ruleCondition},#{ruleValue},#{ruleType},#{createTime},#{createUserId},#{updateUserId},#{updateTime},#{roleName},#{resourceName})
+    </insert>
+
+    <!-- 鎵归噺鏂板 -->
+    <insert id="insertBatch" parameterType="paramDto">
+        insert into mortals_xhx_dimension_resource_rule
+        (role_id,resource_id,rule_code,rule_name,rule_condition,rule_value,rule_type,create_time,create_user_id,update_user_id,update_time,role_name,resource_name)
+        VALUES
+        <foreach collection="data.dataList" item="item" index="index" separator="," >
+            (#{item.roleId},#{item.resourceId},#{item.ruleCode},#{item.ruleName},#{item.ruleCondition},#{item.ruleValue},#{item.ruleType},#{item.createTime},#{item.createUserId},#{item.updateUserId},#{item.updateTime},#{item.roleName},#{item.resourceName})
+        </foreach>
+    </insert>
+
+
+    <!-- 鏍规嵁ParamDto鏇存柊 -->
+    <update id="update" parameterType="paramDto">
+        update mortals_xhx_dimension_resource_rule as a
+        set
+        <trim suffixOverrides="," suffix="">
+            <if test="(colPickMode==0 and data.containsKey('roleId')) or (colPickMode==1 and !data.containsKey('roleId'))">
+                a.role_id=#{data.roleId},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('roleIdIncrement')) or (colPickMode==1 and !data.containsKey('roleIdIncrement'))">
+                a.role_id=ifnull(a.role_id,0) + #{data.roleIdIncrement},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('resourceId')) or (colPickMode==1 and !data.containsKey('resourceId'))">
+                a.resource_id=#{data.resourceId},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('resourceIdIncrement')) or (colPickMode==1 and !data.containsKey('resourceIdIncrement'))">
+                a.resource_id=ifnull(a.resource_id,0) + #{data.resourceIdIncrement},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('ruleCode')) or (colPickMode==1 and !data.containsKey('ruleCode'))">
+                a.rule_code=#{data.ruleCode},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('ruleName')) or (colPickMode==1 and !data.containsKey('ruleName'))">
+                a.rule_name=#{data.ruleName},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('ruleCondition')) or (colPickMode==1 and !data.containsKey('ruleCondition'))">
+                a.rule_condition=#{data.ruleCondition},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('ruleValue')) or (colPickMode==1 and !data.containsKey('ruleValue'))">
+                a.rule_value=#{data.ruleValue},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('ruleType')) or (colPickMode==1 and !data.containsKey('ruleType'))">
+                a.rule_type=#{data.ruleType},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('ruleTypeIncrement')) or (colPickMode==1 and !data.containsKey('ruleTypeIncrement'))">
+                a.rule_type=ifnull(a.rule_type,0) + #{data.ruleTypeIncrement},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
+                a.create_time=#{data.createTime},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('createUserId')) or (colPickMode==1 and !data.containsKey('createUserId'))">
+                a.create_user_id=#{data.createUserId},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('createUserIdIncrement')) or (colPickMode==1 and !data.containsKey('createUserIdIncrement'))">
+                a.create_user_id=ifnull(a.create_user_id,0) + #{data.createUserIdIncrement},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('updateUserId')) or (colPickMode==1 and !data.containsKey('updateUserId'))">
+                a.update_user_id=#{data.updateUserId},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('updateUserIdIncrement')) or (colPickMode==1 and !data.containsKey('updateUserIdIncrement'))">
+                a.update_user_id=ifnull(a.update_user_id,0) + #{data.updateUserIdIncrement},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('updateTime')) or (colPickMode==1 and !data.containsKey('updateTime'))">
+                a.update_time=#{data.updateTime},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('roleName')) or (colPickMode==1 and !data.containsKey('roleName'))">
+                a.role_name=#{data.roleName},
+            </if>
+            <if test="(colPickMode==0 and data.containsKey('resourceName')) or (colPickMode==1 and !data.containsKey('resourceName'))">
+                a.resource_name=#{data.resourceName},
+            </if>
+        </trim>
+        <trim suffixOverrides="where" suffix="">
+            where
+            <trim prefixOverrides="and" prefix="">
+                <include refid="_condition_"/>
+            </trim>
+        </trim>
+    </update>
+    <!-- 鎵归噺鏇存柊 -->
+    <update id="updateBatch" parameterType="paramDto">
+        update mortals_xhx_dimension_resource_rule as a
+        <trim prefix="set" suffixOverrides=",">
+            <trim prefix="role_id=(case" suffix="ELSE role_id end),">
+                <foreach collection="data.dataList" item="item" index="index" separator="" >
+                    <choose>
+                        <when test="(colPickMode==0 and item.containsKey('roleId')) or (colPickMode==1 and !item.containsKey('roleId'))">
+                            when a.id=#{item.id} then #{item.roleId}
+                        </when>
+                        <when test="(colPickMode==0 and item.containsKey('roleIdIncrement')) or (colPickMode==1 and !item.containsKey('roleIdIncrement'))">
+                            when a.id=#{item.id} then ifnull(a.role_id,0) + #{item.roleIdIncrement}
+                        </when>
+                    </choose>
+                </foreach>
+            </trim>
+            <trim prefix="resource_id=(case" suffix="ELSE resource_id end),">
+                <foreach collection="data.dataList" item="item" index="index" separator="" >
+                    <choose>
+                        <when test="(colPickMode==0 and item.containsKey('resourceId')) or (colPickMode==1 and !item.containsKey('resourceId'))">
+                            when a.id=#{item.id} then #{item.resourceId}
+                        </when>
+                        <when test="(colPickMode==0 and item.containsKey('resourceIdIncrement')) or (colPickMode==1 and !item.containsKey('resourceIdIncrement'))">
+                            when a.id=#{item.id} then ifnull(a.resource_id,0) + #{item.resourceIdIncrement}
+                        </when>
+                    </choose>
+                </foreach>
+            </trim>
+            <trim prefix="rule_code=(case" suffix="ELSE rule_code end),">
+                <foreach collection="data.dataList" item="item" index="index" separator="" >
+                    <if test="(colPickMode==0 and item.containsKey('ruleCode')) or (colPickMode==1 and !item.containsKey('ruleCode'))">
+                        when a.id=#{item.id} then #{item.ruleCode}
+                    </if>
+                </foreach>
+            </trim>
+            <trim prefix="rule_name=(case" suffix="ELSE rule_name end),">
+                <foreach collection="data.dataList" item="item" index="index" separator="" >
+                    <if test="(colPickMode==0 and item.containsKey('ruleName')) or (colPickMode==1 and !item.containsKey('ruleName'))">
+                        when a.id=#{item.id} then #{item.ruleName}
+                    </if>
+                </foreach>
+            </trim>
+            <trim prefix="rule_condition=(case" suffix="ELSE rule_condition end),">
+                <foreach collection="data.dataList" item="item" index="index" separator="" >
+                    <if test="(colPickMode==0 and item.containsKey('ruleCondition')) or (colPickMode==1 and !item.containsKey('ruleCondition'))">
+                        when a.id=#{item.id} then #{item.ruleCondition}
+                    </if>
+                </foreach>
+            </trim>
+            <trim prefix="rule_value=(case" suffix="ELSE rule_value end),">
+                <foreach collection="data.dataList" item="item" index="index" separator="" >
+                    <if test="(colPickMode==0 and item.containsKey('ruleValue')) or (colPickMode==1 and !item.containsKey('ruleValue'))">
+                        when a.id=#{item.id} then #{item.ruleValue}
+                    </if>
+                </foreach>
+            </trim>
+            <trim prefix="rule_type=(case" suffix="ELSE rule_type end),">
+                <foreach collection="data.dataList" item="item" index="index" separator="" >
+                    <choose>
+                        <when test="(colPickMode==0 and item.containsKey('ruleType')) or (colPickMode==1 and !item.containsKey('ruleType'))">
+                            when a.id=#{item.id} then #{item.ruleType}
+                        </when>
+                        <when test="(colPickMode==0 and item.containsKey('ruleTypeIncrement')) or (colPickMode==1 and !item.containsKey('ruleTypeIncrement'))">
+                            when a.id=#{item.id} then ifnull(a.rule_type,0) + #{item.ruleTypeIncrement}
+                        </when>
+                    </choose>
+                </foreach>
+            </trim>
+            <trim prefix="create_time=(case" suffix="ELSE create_time end),">
+                <foreach collection="data.dataList" item="item" index="index" separator="" >
+                    <if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))">
+                        when a.id=#{item.id} then #{item.createTime}
+                    </if>
+                </foreach>
+            </trim>
+            <trim prefix="create_user_id=(case" suffix="ELSE create_user_id end),">
+                <foreach collection="data.dataList" item="item" index="index" separator="" >
+                    <choose>
+                        <when test="(colPickMode==0 and item.containsKey('createUserId')) or (colPickMode==1 and !item.containsKey('createUserId'))">
+                            when a.id=#{item.id} then #{item.createUserId}
+                        </when>
+                        <when test="(colPickMode==0 and item.containsKey('createUserIdIncrement')) or (colPickMode==1 and !item.containsKey('createUserIdIncrement'))">
+                            when a.id=#{item.id} then ifnull(a.create_user_id,0) + #{item.createUserIdIncrement}
+                        </when>
+                    </choose>
+                </foreach>
+            </trim>
+            <trim prefix="update_user_id=(case" suffix="ELSE update_user_id end),">
+                <foreach collection="data.dataList" item="item" index="index" separator="" >
+                    <choose>
+                        <when test="(colPickMode==0 and item.containsKey('updateUserId')) or (colPickMode==1 and !item.containsKey('updateUserId'))">
+                            when a.id=#{item.id} then #{item.updateUserId}
+                        </when>
+                        <when test="(colPickMode==0 and item.containsKey('updateUserIdIncrement')) or (colPickMode==1 and !item.containsKey('updateUserIdIncrement'))">
+                            when a.id=#{item.id} then ifnull(a.update_user_id,0) + #{item.updateUserIdIncrement}
+                        </when>
+                    </choose>
+                </foreach>
+            </trim>
+            <trim prefix="update_time=(case" suffix="ELSE update_time end),">
+                <foreach collection="data.dataList" item="item" index="index" separator="" >
+                    <if test="(colPickMode==0 and item.containsKey('updateTime')) or (colPickMode==1 and !item.containsKey('updateTime'))">
+                        when a.id=#{item.id} then #{item.updateTime}
+                    </if>
+                </foreach>
+            </trim>
+            <trim prefix="role_name=(case" suffix="ELSE role_name end),">
+                <foreach collection="data.dataList" item="item" index="index" separator="" >
+                    <if test="(colPickMode==0 and item.containsKey('roleName')) or (colPickMode==1 and !item.containsKey('roleName'))">
+                        when a.id=#{item.id} then #{item.roleName}
+                    </if>
+                </foreach>
+            </trim>
+            <trim prefix="resource_name=(case" suffix="ELSE resource_name end),">
+                <foreach collection="data.dataList" item="item" index="index" separator="" >
+                    <if test="(colPickMode==0 and item.containsKey('resourceName')) or (colPickMode==1 and !item.containsKey('resourceName'))">
+                        when a.id=#{item.id} then #{item.resourceName}
+                    </if>
+                </foreach>
+            </trim>
+        </trim>
+        where id in
+        <foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
+            #{item.id}
+        </foreach>
+    </update>
+    <!-- 鏍规嵁涓诲仴鏌ヨ -->
+    <select id="getByKey" parameterType="paramDto" resultMap="DimensionResourceRuleEntity-Map">
+        select <include refid="_columns"/>
+        from mortals_xhx_dimension_resource_rule as a
+        where a.id=#{condition.id}
+    </select>
+    <!-- 鏍规嵁涓诲仴鍒犻櫎 -->
+    <delete id="deleteByKey" parameterType="paramDto">
+        delete a.* from mortals_xhx_dimension_resource_rule as a where a.id=#{condition.id}
+    </delete>
+    <!-- 鏍规嵁涓诲仴鍒犻櫎涓€鎵癸紝閽堝鍗曚竴涓诲仴鏈夋晥 -->
+    <delete id="deleteByKeys">
+        delete from mortals_xhx_dimension_resource_rule where id in
+        <foreach collection="array" item="item" index="index" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </delete>
+    <!-- 鏍规嵁涓诲仴鍒楄〃鍒犻櫎涓€鎵癸紝閽堝鍗曚竴涓诲仴鏈夋晥 -->
+    <delete id="deleteByKeyList">
+        delete from mortals_xhx_dimension_resource_rule where id in
+        <foreach collection="list" item="item" index="index" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </delete>
+
+    <!-- 鏍规嵁瀵硅薄鍒楄〃鍒犻櫎涓€鎵癸紝閽堝鍗曚竴涓诲仴鏈夋晥 -->
+    <delete id="deleteByEntityList">
+        delete from mortals_xhx_dimension_resource_rule where id in
+        <foreach collection="list" item="item" index="index" open="(" separator="," close=")">
+            #{item.id}
+        </foreach>
+    </delete>
+    <!-- 鏍规嵁paramDto鍒犻櫎涓€鎵� -->
+    <delete id="deleteByMap" parameterType="paramDto">
+        delete a.* from mortals_xhx_dimension_resource_rule as a
+        <trim suffixOverrides="where" suffix="">
+            where
+            <trim prefixOverrides="and" prefix="">
+                <include refid="_condition_"/>
+            </trim>
+        </trim>
+    </delete>
+    <!-- 鑾峰彇鍒楄〃 -->
+    <select id="getList" parameterType="paramDto" resultMap="DimensionResourceRuleEntity-Map">
+        select <include refid="_columns"/>
+        from mortals_xhx_dimension_resource_rule as a
+        <trim suffixOverrides="where" suffix="">
+            where
+            <trim prefixOverrides="and" prefix="">
+                <include refid="_condition_"/>
+            </trim>
+        </trim>
+        <include refid="_orderCols_"/>
+    </select>
+
+
+
+    <!-- 鑾峰彇 -->
+    <select id="getListCount" parameterType="paramDto" resultType="int">
+        select count(1)
+        from mortals_xhx_dimension_resource_rule as a
+        <trim suffixOverrides="where" suffix="">
+            where
+            <trim prefixOverrides="and" prefix="">
+                <include refid="_condition_"/>
+            </trim>
+        </trim>
+    </select>
+    <!-- 鏉′欢鏄犲皠 -->
+    <sql id="_condition_">
+        <if test="condition != null and !condition.isEmpty()">
+            <!-- 鏉′欢鏄犲皠-鏅€氭潯浠� -->
+            <include refid="_condition_param_">
+                <property name="_conditionParam_" value="condition"/>
+                <property name="_conditionType_" value="and"/>
+            </include>
+            <!-- 鏉′欢鏄犲皠-闆嗗悎涔嬮棿浣跨敤AND锛岄泦鍚堜腑鍏冪礌浣跨敤OR-(list[0].1 or list[0].2) and (list[1].3 or list[1].4) -->
+            <if test="condition.containsKey('andConditionList') and !condition.andConditionList.isEmpty()">
+                and
+                <foreach collection="condition.andConditionList" open="(" close=")" index="index" item="andCondition" separator=" and ">
+                    <trim prefixOverrides="or" prefix="(" suffix=")">
+                        <include refid="_condition_param_">
+                            <property name="_conditionParam_" value="andCondition"/>
+                            <property name="_conditionType_" value="or"/>
+                        </include>
+                    </trim>
+                </foreach>
+            </if>
+            <!-- 鏉′欢鏄犲皠-闆嗗悎涔嬮棿浣跨敤OR锛岄泦鍚堜腑鍏冪礌浣跨敤AND-(list[0].1 and list[0].2) or (list[1].3 and list[1].4) -->
+            <if test="condition.containsKey('orConditionList') and !condition.orConditionList.isEmpty()">
+                and
+                <foreach collection="condition.orConditionList" open="(" close=")" index="index" item="orCondition" separator=" or ">
+                    <trim prefixOverrides="and" prefix="(" suffix=")">
+                        <include refid="_condition_param_">
+                            <property name="_conditionParam_" value="orCondition"/>
+                            <property name="_conditionType_" value="and"/>
+                        </include>
+                    </trim>
+                </foreach>
+            </if>
+        </if>
+    </sql>
+    <!-- 鏉′欢鏄犲皠-浠e弬鏁� -->
+    <sql id="_condition_param_">
+        <bind name="conditionParamRef" value="${_conditionParam_}"/>
+
+        <if test="conditionParamRef.containsKey('id')">
+            <if test="conditionParamRef.id != null">
+                ${_conditionType_} a.id=#{${_conditionParam_}.id}
+            </if>
+        </if>
+        <if test="conditionParamRef.containsKey('id')">
+            <if test="conditionParamRef.id != null ">
+                ${_conditionType_} a.id = #{${_conditionParam_}.id}
+            </if>
+            <if test="conditionParamRef.id == null">
+                ${_conditionType_} a.id is null
+            </if>
+        </if>
+        <if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
+            ${_conditionType_} a.id in
+            <foreach collection="conditionParamRef.idList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="conditionParamRef.containsKey('idNotList') and conditionParamRef.idNotList.size() > 0">
+            ${_conditionType_} a.id not in
+            <foreach collection="conditionParamRef.idNotList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="conditionParamRef.containsKey('idStart') and conditionParamRef.idStart != null">
+            ${_conditionType_} a.id <![CDATA[ >= ]]> #{${_conditionParam_}.idStart}
+        </if>
+        <if test="conditionParamRef.containsKey('idEnd') and conditionParamRef.idEnd != null">
+            ${_conditionType_} a.id <![CDATA[ <= ]]> #{${_conditionParam_}.idEnd}
+        </if>
+
+        <if test="conditionParamRef.containsKey('roleId')">
+            <if test="conditionParamRef.roleId != null ">
+                ${_conditionType_} a.role_id = #{${_conditionParam_}.roleId}
+            </if>
+            <if test="conditionParamRef.roleId == null">
+                ${_conditionType_} a.role_id is null
+            </if>
+        </if>
+        <if test="conditionParamRef.containsKey('roleIdList') and conditionParamRef.roleIdList.size() > 0">
+            ${_conditionType_} a.role_id in
+            <foreach collection="conditionParamRef.roleIdList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="conditionParamRef.containsKey('roleIdNotList') and conditionParamRef.roleIdNotList.size() > 0">
+            ${_conditionType_} a.role_id not in
+            <foreach collection="conditionParamRef.roleIdNotList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="conditionParamRef.containsKey('roleIdStart') and conditionParamRef.roleIdStart != null">
+            ${_conditionType_} a.role_id <![CDATA[ >= ]]> #{${_conditionParam_}.roleIdStart}
+        </if>
+        <if test="conditionParamRef.containsKey('roleIdEnd') and conditionParamRef.roleIdEnd != null">
+            ${_conditionType_} a.role_id <![CDATA[ <= ]]> #{${_conditionParam_}.roleIdEnd}
+        </if>
+
+        <if test="conditionParamRef.containsKey('resourceId')">
+            <if test="conditionParamRef.resourceId != null ">
+                ${_conditionType_} a.resource_id = #{${_conditionParam_}.resourceId}
+            </if>
+            <if test="conditionParamRef.resourceId == null">
+                ${_conditionType_} a.resource_id is null
+            </if>
+        </if>
+        <if test="conditionParamRef.containsKey('resourceIdList') and conditionParamRef.resourceIdList.size() > 0">
+            ${_conditionType_} a.resource_id in
+            <foreach collection="conditionParamRef.resourceIdList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="conditionParamRef.containsKey('resourceIdNotList') and conditionParamRef.resourceIdNotList.size() > 0">
+            ${_conditionType_} a.resource_id not in
+            <foreach collection="conditionParamRef.resourceIdNotList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="conditionParamRef.containsKey('resourceIdStart') and conditionParamRef.resourceIdStart != null">
+            ${_conditionType_} a.resource_id <![CDATA[ >= ]]> #{${_conditionParam_}.resourceIdStart}
+        </if>
+        <if test="conditionParamRef.containsKey('resourceIdEnd') and conditionParamRef.resourceIdEnd != null">
+            ${_conditionType_} a.resource_id <![CDATA[ <= ]]> #{${_conditionParam_}.resourceIdEnd}
+        </if>
+
+
+        <if test="conditionParamRef.containsKey('ruleCode')">
+            <if test="conditionParamRef.ruleCode != null and conditionParamRef.ruleCode != ''">
+                ${_conditionType_} a.rule_code like #{${_conditionParam_}.ruleCode}
+            </if>
+            <if test="conditionParamRef.ruleCode == null">
+                ${_conditionType_} a.rule_code is null
+            </if>
+        </if>
+        <if test="conditionParamRef.containsKey('ruleCodeList') and conditionParamRef.ruleCodeList.size() > 0">
+            ${_conditionType_} a.rule_code in
+            <foreach collection="conditionParamRef.ruleCodeList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="conditionParamRef.containsKey('ruleCodeNotList') and conditionParamRef.ruleCodeNotList.size() > 0">
+            ${_conditionType_} a.rule_code not in
+            <foreach collection="conditionParamRef.ruleCodeNotList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+
+        <if test="conditionParamRef.containsKey('ruleName')">
+            <if test="conditionParamRef.ruleName != null and conditionParamRef.ruleName != ''">
+                ${_conditionType_} a.rule_name like #{${_conditionParam_}.ruleName}
+            </if>
+            <if test="conditionParamRef.ruleName == null">
+                ${_conditionType_} a.rule_name is null
+            </if>
+        </if>
+        <if test="conditionParamRef.containsKey('ruleNameList') and conditionParamRef.ruleNameList.size() > 0">
+            ${_conditionType_} a.rule_name in
+            <foreach collection="conditionParamRef.ruleNameList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="conditionParamRef.containsKey('ruleNameNotList') and conditionParamRef.ruleNameNotList.size() > 0">
+            ${_conditionType_} a.rule_name not in
+            <foreach collection="conditionParamRef.ruleNameNotList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+
+        <if test="conditionParamRef.containsKey('ruleCondition')">
+            <if test="conditionParamRef.ruleCondition != null and conditionParamRef.ruleCondition != ''">
+                ${_conditionType_} a.rule_condition like #{${_conditionParam_}.ruleCondition}
+            </if>
+            <if test="conditionParamRef.ruleCondition == null">
+                ${_conditionType_} a.rule_condition is null
+            </if>
+        </if>
+        <if test="conditionParamRef.containsKey('ruleConditionList') and conditionParamRef.ruleConditionList.size() > 0">
+            ${_conditionType_} a.rule_condition in
+            <foreach collection="conditionParamRef.ruleConditionList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="conditionParamRef.containsKey('ruleConditionNotList') and conditionParamRef.ruleConditionNotList.size() > 0">
+            ${_conditionType_} a.rule_condition not in
+            <foreach collection="conditionParamRef.ruleConditionNotList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+
+        <if test="conditionParamRef.containsKey('ruleValue')">
+            <if test="conditionParamRef.ruleValue != null and conditionParamRef.ruleValue != ''">
+                ${_conditionType_} a.rule_value like #{${_conditionParam_}.ruleValue}
+            </if>
+            <if test="conditionParamRef.ruleValue == null">
+                ${_conditionType_} a.rule_value is null
+            </if>
+        </if>
+        <if test="conditionParamRef.containsKey('ruleValueList') and conditionParamRef.ruleValueList.size() > 0">
+            ${_conditionType_} a.rule_value in
+            <foreach collection="conditionParamRef.ruleValueList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="conditionParamRef.containsKey('ruleValueNotList') and conditionParamRef.ruleValueNotList.size() > 0">
+            ${_conditionType_} a.rule_value not in
+            <foreach collection="conditionParamRef.ruleValueNotList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="conditionParamRef.containsKey('ruleType')">
+            <if test="conditionParamRef.ruleType != null ">
+                ${_conditionType_} a.rule_type = #{${_conditionParam_}.ruleType}
+            </if>
+            <if test="conditionParamRef.ruleType == null">
+                ${_conditionType_} a.rule_type is null
+            </if>
+        </if>
+        <if test="conditionParamRef.containsKey('ruleTypeList') and conditionParamRef.ruleTypeList.size() > 0">
+            ${_conditionType_} a.rule_type in
+            <foreach collection="conditionParamRef.ruleTypeList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="conditionParamRef.containsKey('ruleTypeNotList') and conditionParamRef.ruleTypeNotList.size() > 0">
+            ${_conditionType_} a.rule_type not in
+            <foreach collection="conditionParamRef.ruleTypeNotList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="conditionParamRef.containsKey('ruleTypeStart') and conditionParamRef.ruleTypeStart != null">
+            ${_conditionType_} a.rule_type <![CDATA[ >= ]]> #{${_conditionParam_}.ruleTypeStart}
+        </if>
+        <if test="conditionParamRef.containsKey('ruleTypeEnd') and conditionParamRef.ruleTypeEnd != null">
+            ${_conditionType_} a.rule_type <![CDATA[ <= ]]> #{${_conditionParam_}.ruleTypeEnd}
+        </if>
+
+
+        <if test="conditionParamRef.containsKey('createTime')">
+            <if test="conditionParamRef.createTime != null ">
+                ${_conditionType_} a.create_time = #{${_conditionParam_}.createTime}
+            </if>
+            <if test="conditionParamRef.createTime == null">
+                ${_conditionType_} a.create_time is null
+            </if>
+        </if>
+        <if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
+            ${_conditionType_} a.create_time <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
+        </if>
+        <if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
+            ${_conditionType_} a.create_time <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
+        </if>
+        <if test="conditionParamRef.containsKey('createUserId')">
+            <if test="conditionParamRef.createUserId != null ">
+                ${_conditionType_} a.create_user_id = #{${_conditionParam_}.createUserId}
+            </if>
+            <if test="conditionParamRef.createUserId == null">
+                ${_conditionType_} a.create_user_id is null
+            </if>
+        </if>
+        <if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
+            ${_conditionType_} a.create_user_id in
+            <foreach collection="conditionParamRef.createUserIdList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="conditionParamRef.containsKey('createUserIdNotList') and conditionParamRef.createUserIdNotList.size() > 0">
+            ${_conditionType_} a.create_user_id not in
+            <foreach collection="conditionParamRef.createUserIdNotList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="conditionParamRef.containsKey('createUserIdStart') and conditionParamRef.createUserIdStart != null">
+            ${_conditionType_} a.create_user_id <![CDATA[ >= ]]> #{${_conditionParam_}.createUserIdStart}
+        </if>
+        <if test="conditionParamRef.containsKey('createUserIdEnd') and conditionParamRef.createUserIdEnd != null">
+            ${_conditionType_} a.create_user_id <![CDATA[ <= ]]> #{${_conditionParam_}.createUserIdEnd}
+        </if>
+
+        <if test="conditionParamRef.containsKey('updateUserId')">
+            <if test="conditionParamRef.updateUserId != null ">
+                ${_conditionType_} a.update_user_id = #{${_conditionParam_}.updateUserId}
+            </if>
+            <if test="conditionParamRef.updateUserId == null">
+                ${_conditionType_} a.update_user_id is null
+            </if>
+        </if>
+        <if test="conditionParamRef.containsKey('updateUserIdList') and conditionParamRef.updateUserIdList.size() > 0">
+            ${_conditionType_} a.update_user_id in
+            <foreach collection="conditionParamRef.updateUserIdList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="conditionParamRef.containsKey('updateUserIdNotList') and conditionParamRef.updateUserIdNotList.size() > 0">
+            ${_conditionType_} a.update_user_id not in
+            <foreach collection="conditionParamRef.updateUserIdNotList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="conditionParamRef.containsKey('updateUserIdStart') and conditionParamRef.updateUserIdStart != null">
+            ${_conditionType_} a.update_user_id <![CDATA[ >= ]]> #{${_conditionParam_}.updateUserIdStart}
+        </if>
+        <if test="conditionParamRef.containsKey('updateUserIdEnd') and conditionParamRef.updateUserIdEnd != null">
+            ${_conditionType_} a.update_user_id <![CDATA[ <= ]]> #{${_conditionParam_}.updateUserIdEnd}
+        </if>
+
+
+        <if test="conditionParamRef.containsKey('updateTime')">
+            <if test="conditionParamRef.updateTime != null ">
+                ${_conditionType_} a.update_time = #{${_conditionParam_}.updateTime}
+            </if>
+            <if test="conditionParamRef.updateTime == null">
+                ${_conditionType_} a.update_time is null
+            </if>
+        </if>
+        <if test="conditionParamRef.containsKey('updateTimeStart') and conditionParamRef.updateTimeStart != null and conditionParamRef.updateTimeStart!=''">
+            ${_conditionType_} a.update_time <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
+        </if>
+        <if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''">
+            ${_conditionType_} a.update_time <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
+        </if>
+
+        <if test="conditionParamRef.containsKey('roleName')">
+            <if test="conditionParamRef.roleName != null and conditionParamRef.roleName != ''">
+                ${_conditionType_} a.role_name like #{${_conditionParam_}.roleName}
+            </if>
+            <if test="conditionParamRef.roleName == null">
+                ${_conditionType_} a.role_name is null
+            </if>
+        </if>
+        <if test="conditionParamRef.containsKey('roleNameList') and conditionParamRef.roleNameList.size() > 0">
+            ${_conditionType_} a.role_name in
+            <foreach collection="conditionParamRef.roleNameList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="conditionParamRef.containsKey('roleNameNotList') and conditionParamRef.roleNameNotList.size() > 0">
+            ${_conditionType_} a.role_name not in
+            <foreach collection="conditionParamRef.roleNameNotList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+
+        <if test="conditionParamRef.containsKey('resourceName')">
+            <if test="conditionParamRef.resourceName != null and conditionParamRef.resourceName != ''">
+                ${_conditionType_} a.resource_name like #{${_conditionParam_}.resourceName}
+            </if>
+            <if test="conditionParamRef.resourceName == null">
+                ${_conditionType_} a.resource_name is null
+            </if>
+        </if>
+        <if test="conditionParamRef.containsKey('resourceNameList') and conditionParamRef.resourceNameList.size() > 0">
+            ${_conditionType_} a.resource_name in
+            <foreach collection="conditionParamRef.resourceNameList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="conditionParamRef.containsKey('resourceNameNotList') and conditionParamRef.resourceNameNotList.size() > 0">
+            ${_conditionType_} a.resource_name not in
+            <foreach collection="conditionParamRef.resourceNameNotList" open="(" close=")" index="index" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+    </sql>
+    <sql id="_orderCols_">
+        <if test="orderColList != null and !orderColList.isEmpty()">
+            order by
+            <if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
+                field(a.id,
+                <foreach collection="conditionParamRef.idList" open="" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+                ,
+            </if>
+            <if test="conditionParamRef.containsKey('roleIdList') and conditionParamRef.roleIdList.size() > 0">
+                field(a.roleId,
+                <foreach collection="conditionParamRef.roleIdList" open="" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+                ,
+            </if>
+            <if test="conditionParamRef.containsKey('resourceIdList') and conditionParamRef.resourceIdList.size() > 0">
+                field(a.resourceId,
+                <foreach collection="conditionParamRef.resourceIdList" open="" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+                ,
+            </if>
+            <if test="conditionParamRef.containsKey('ruleTypeList') and conditionParamRef.ruleTypeList.size() > 0">
+                field(a.ruleType,
+                <foreach collection="conditionParamRef.ruleTypeList" open="" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+                ,
+            </if>
+            <if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
+                field(a.createUserId,
+                <foreach collection="conditionParamRef.createUserIdList" open="" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+                ,
+            </if>
+            <if test="conditionParamRef.containsKey('updateUserIdList') and conditionParamRef.updateUserIdList.size() > 0">
+                field(a.updateUserId,
+                <foreach collection="conditionParamRef.updateUserIdList" open="" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+                ,
+            </if>
+            <trim suffixOverrides=","  suffix="">
+                <foreach collection="orderColList" open="" close="" index="index" item="item" separator=",">
+                    a.${item.colName} ${item.sortKind}
+                </foreach>
+            </trim>
+        </if>
+        <if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()">
+            order by
+            <if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
+                field(a.id,
+                <foreach collection="conditionParamRef.idList" open="" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+                ,
+            </if>
+            <if test="conditionParamRef.containsKey('roleIdList') and conditionParamRef.roleIdList.size() > 0">
+                field(a.roleId,
+                <foreach collection="conditionParamRef.roleIdList" open="" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+                ,
+            </if>
+            <if test="conditionParamRef.containsKey('resourceIdList') and conditionParamRef.resourceIdList.size() > 0">
+                field(a.resourceId,
+                <foreach collection="conditionParamRef.resourceIdList" open="" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+                ,
+            </if>
+            <if test="conditionParamRef.containsKey('ruleTypeList') and conditionParamRef.ruleTypeList.size() > 0">
+                field(a.ruleType,
+                <foreach collection="conditionParamRef.ruleTypeList" open="" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+                ,
+            </if>
+            <if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
+                field(a.createUserId,
+                <foreach collection="conditionParamRef.createUserIdList" open="" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+                ,
+            </if>
+            <if test="conditionParamRef.containsKey('updateUserIdList') and conditionParamRef.updateUserIdList.size() > 0">
+                field(a.updateUserId,
+                <foreach collection="conditionParamRef.updateUserIdList" open="" close=")" index="index" item="item" separator=",">
+                    #{item}
+                </foreach>
+                ,
+            </if>
+            <trim suffixOverrides=","  suffix="">
+                <if test="orderCol.containsKey('id')">
+                    a.id
+                    <if test='orderCol.id != null and "DESC".equalsIgnoreCase(orderCol.id)'>DESC</if>
+                    ,
+                </if>
+                <if test="orderCol.containsKey('roleId')">
+                    a.role_id
+                    <if test='orderCol.roleId != null and "DESC".equalsIgnoreCase(orderCol.roleId)'>DESC</if>
+                    ,
+                </if>
+                <if test="orderCol.containsKey('resourceId')">
+                    a.resource_id
+                    <if test='orderCol.resourceId != null and "DESC".equalsIgnoreCase(orderCol.resourceId)'>DESC</if>
+                    ,
+                </if>
+                <if test="orderCol.containsKey('ruleCode')">
+                    a.rule_code
+                    <if test='orderCol.ruleCode != null and "DESC".equalsIgnoreCase(orderCol.ruleCode)'>DESC</if>
+                    ,
+                </if>
+                <if test="orderCol.containsKey('ruleName')">
+                    a.rule_name
+                    <if test='orderCol.ruleName != null and "DESC".equalsIgnoreCase(orderCol.ruleName)'>DESC</if>
+                    ,
+                </if>
+                <if test="orderCol.containsKey('ruleCondition')">
+                    a.rule_condition
+                    <if test='orderCol.ruleCondition != null and "DESC".equalsIgnoreCase(orderCol.ruleCondition)'>DESC</if>
+                    ,
+                </if>
+                <if test="orderCol.containsKey('ruleValue')">
+                    a.rule_value
+                    <if test='orderCol.ruleValue != null and "DESC".equalsIgnoreCase(orderCol.ruleValue)'>DESC</if>
+                    ,
+                </if>
+                <if test="orderCol.containsKey('ruleType')">
+                    a.rule_type
+                    <if test='orderCol.ruleType != null and "DESC".equalsIgnoreCase(orderCol.ruleType)'>DESC</if>
+                    ,
+                </if>
+                <if test="orderCol.containsKey('createTime')">
+                    a.create_time
+                    <if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
+                    ,
+                </if>
+                <if test="orderCol.containsKey('createUserId')">
+                    a.create_user_id
+                    <if test='orderCol.createUserId != null and "DESC".equalsIgnoreCase(orderCol.createUserId)'>DESC</if>
+                    ,
+                </if>
+                <if test="orderCol.containsKey('updateUserId')">
+                    a.update_user_id
+                    <if test='orderCol.updateUserId != null and "DESC".equalsIgnoreCase(orderCol.updateUserId)'>DESC</if>
+                    ,
+                </if>
+                <if test="orderCol.containsKey('updateTime')">
+                    a.update_time
+                    <if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if>
+                    ,
+                </if>
+                <if test="orderCol.containsKey('roleName')">
+                    a.role_name
+                    <if test='orderCol.roleName != null and "DESC".equalsIgnoreCase(orderCol.roleName)'>DESC</if>
+                    ,
+                </if>
+                <if test="orderCol.containsKey('resourceName')">
+                    a.resource_name
+                    <if test='orderCol.resourceName != null and "DESC".equalsIgnoreCase(orderCol.resourceName)'>DESC</if>
+                    ,
+                </if>
+            </trim>
+        </if>
+
+
+    </sql>
+    <sql id="_group_by_">
+        <if test="groupList != null and !groupList.isEmpty()">
+            GROUP BY
+            <trim suffixOverrides=","  suffix="">
+                <foreach collection="groupList" open="" close="" index="index" item="item" separator=",">
+                    ${item}
+                </foreach>
+            </trim>
+        </if>
+    </sql>
+</mapper>
\ No newline at end of file
diff --git a/base-manager/src/main/resources/sqlmap/module/dimension/DimensionResourceRuleMapperExt.xml b/base-manager/src/main/resources/sqlmap/module/dimension/DimensionResourceRuleMapperExt.xml
new file mode 100644
index 0000000000000000000000000000000000000000..24cbefe5377a4d4b23f48e0b7dc1fdad5700d9db
--- /dev/null
+++ b/base-manager/src/main/resources/sqlmap/module/dimension/DimensionResourceRuleMapperExt.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"mybatis-3-mapper.dtd">
+<mapper namespace="com.mortals.xhx.module.dimension.dao.ibatis.DimensionResourceRuleDaoImpl">
+
+
+    <!-- 鑾峰彇鍒楄〃 -->
+    <select id="getRoleComponentRule" parameterType="java.util.HashMap" resultMap="DimensionResourceRuleEntity-Map">
+        SELECT DISTINCT
+        t1.role_id,
+        t1.resource_id,
+        t1.rule_code,
+        t1.rule_name,
+        t1.rule_condition,
+        t1.rule_value,
+        t1.rule_type,
+        t2.userId
+        FROM
+        mortals_xhx_dimension_resource_rule t1
+        LEFT JOIN mortals_xhx_role_user t2 ON t1.role_id = t2.roleId
+        LEFT JOIN mortals_xhx_role_auth t3 ON t1.role_id = t3.roleId
+        LEFT JOIN mortals_xhx_resource t4 ON t4.id = t3.resourceId
+        WHERE
+        FIND_IN_SET( #{route}, t4.url )
+        AND t2.userId = #{userId}
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/base-manager/src/test/java/TestParsePost.java b/base-manager/src/test/java/TestParsePost.java
new file mode 100644
index 0000000000000000000000000000000000000000..bcc42a8d17b8c3a876b1adf65019f8fc21ea6fea
--- /dev/null
+++ b/base-manager/src/test/java/TestParsePost.java
@@ -0,0 +1,57 @@
+import com.alibaba.fastjson.JSON;
+import com.mortals.framework.common.Rest;
+import com.mortals.xhx.common.code.YesNoEnum;
+import com.mortals.xhx.common.utils.MatterHtmlParseUtil;
+import com.mortals.xhx.module.matter.model.MatterEntity;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+public class TestParsePost {
+
+    @Test
+    public void testUrl() {
+
+        String url = "http://www.sczwfw.gov.cn/jiq/interface/item/tags";
+        HashMap<String, String> params = new HashMap<>();
+        params.put("areaCode", "511500000000");
+        params.put("dxType", "6");
+        params.put("deptCode", "11511200MB1147469G");
+        params.put("searchtext", "");
+       // params.put("type", "2");//绫诲瀷 2.閮ㄩ棬  1.涓婚  3.鐑害
+        params.put("taskType", "");
+        // params.put("pageno", "1");
+        Rest<Map<String, Integer>> rest = MatterHtmlParseUtil.statSiteMatterCount(params, url);
+        System.out.println(JSON.toJSONString(rest));
+
+        List<MatterEntity> allList = new ArrayList<>();
+        String url1 = "http://www.sczwfw.gov.cn/jiq/interface/item/tags";
+        HashMap<String, String> params1 = new HashMap<>();
+        params1.put("areaCode", "511500000000");
+        params1.put("dxType", "6");
+        params1.put("deptCode", "11511200MB1147469G");
+        params1.put("searchtext", "");
+     //   params1.put("type", "2");
+        params1.put("taskType", "");
+        for (int i = 1; i <= rest.getData().get("pageNum"); i++) {
+            params1.put("pageno", String.valueOf(i));
+            Rest<List<MatterEntity>> restList = MatterHtmlParseUtil.getMatterList(params1, url1);
+            if (restList.getCode() == YesNoEnum.YES.getValue() && !ObjectUtils.isEmpty(restList.getData())) {
+                allList.addAll(restList.getData());
+            }
+        }
+
+        for (int i = 0; i < allList.size(); i++) {
+            System.out.println(i + "  " + allList.get(i).getMatterName()+"  "+ allList.get(i).getUrl()) ;
+        }
+
+    }
+
+
+}
diff --git a/base-manager/src/test/java/TestPost.java b/base-manager/src/test/java/TestPost.java
new file mode 100644
index 0000000000000000000000000000000000000000..9eaa49310300096c4d8b0ea65723764977ecc3d0
--- /dev/null
+++ b/base-manager/src/test/java/TestPost.java
@@ -0,0 +1,28 @@
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+
+import java.util.HashMap;
+
+@Slf4j
+public class TestPost {
+
+    @Test
+    public void testUrl() {
+
+        HashMap<String, String> headers = new HashMap<>();
+        headers.put("satoken","d186dc7a-8f07-4936-9f36-94aeb7b246bb");
+        HttpRequest httpRequest = HttpUtil.createGet("http://59.225.206.13:8331/oauth-pro/admin-pro/oauth2/isLogin").headerMap(headers, true);
+
+        String resp = httpRequest.execute().body();
+        //String resp = httpRequest.getUrl();
+
+      //  String resp = HttpUtil.get("http://59.225.206.13:8331/oauth-pro/admin-pro/oauth2/isLogin");
+
+        log.info("resp:{}",resp);
+
+    }
+
+
+}
diff --git a/base-manager/src/test/java/com/mortals/httpclient/app/AppDatasetController.http b/base-manager/src/test/java/com/mortals/httpclient/app/AppDatasetController.http
index ac348b927df9834656c0ef69b0fb56f071a91c1d..e399c9624475355bbb76ebd3529749409d5f7677 100644
--- a/base-manager/src/test/java/com/mortals/httpclient/app/AppDatasetController.http
+++ b/base-manager/src/test/java/com/mortals/httpclient/app/AppDatasetController.http
@@ -27,15 +27,19 @@ POST {{baseUrl}}/app/dataset/list
 Content-Type: application/json
 
 {
-  "appId": 20,
+  "appId": 84,
   "orConditionList": [
     {
-      "fieldName": "鍒跺畾鏈哄叧",
-      "fieldValue": "%鍥涘窛鐪佷汉姘戞斂搴�%"
+      "fieldName": "閮ㄩ棬",
+      "fieldValue": "甯傚叕瀹夊眬"
     },{
-      "fieldName": "鏍囬",
-      "fieldValue": "%绠$悊鍔炴硶%"
+      "fieldName": "鍛樺伐濮撳悕",
+      "fieldValue": "%榛�%"
+    },
+    {
+      "fieldValueList": ["鍛樺伐濮撳悕"]
     }
+
   ],
   "page": 1,
   "size": 10
diff --git a/base-manager/src/test/java/com/mortals/httpclient/base/BaseAreaController.http b/base-manager/src/test/java/com/mortals/httpclient/base/BaseAreaController.http
index 61e83dc0e4e74da4db5ec776b0c42a373851d840..f55db00e25cedbaa69b06a7df71ae14628977d37 100644
--- a/base-manager/src/test/java/com/mortals/httpclient/base/BaseAreaController.http
+++ b/base-manager/src/test/java/com/mortals/httpclient/base/BaseAreaController.http
@@ -54,7 +54,7 @@ POST {{baseUrl}}/base/area/genSubAreaByAreaName
 Content-Type: application/json
 
 {
-  "areaCode": "510921000000"
+  "areaCode": "513232000000"
 }
 
 
diff --git a/base-manager/src/test/java/com/mortals/httpclient/dimension/DimensionController.http b/base-manager/src/test/java/com/mortals/httpclient/dimension/DimensionController.http
new file mode 100644
index 0000000000000000000000000000000000000000..cc705ba2ec7e44eaf819adc8f833c2faf69db946
--- /dev/null
+++ b/base-manager/src/test/java/com/mortals/httpclient/dimension/DimensionController.http
@@ -0,0 +1,58 @@
+###鐧诲綍
+POST {{baseUrl}}/login/login
+Content-Type: application/json
+
+{
+"loginName":"admin",
+"password":"admin",
+"securityCode":"8888"
+}
+
+> {%
+client.global.set("SmsSet_id", JSON.parse(response.body).data.id);
+client.global.set("authToken", JSON.parse(response.body).data.token);
+%}
+
+###鎺堟潈缁村害鍒楄〃
+POST {{baseUrl}}/dimension/list
+Content-Type: application/json
+
+{
+    "page":1,
+    "size":10
+}
+
+
+###鎺堟潈缁村害鏇存柊涓庝繚瀛�
+POST {{baseUrl}}/dimension/save
+Authorization: {{authToken}}
+Content-Type: application/json
+
+{
+        "dimensionCode":"SdgQHJ",
+        "dimensionName":"0SiGlt",
+        "dimensionValue":"yVbV78",
+        "dimensionType":1,
+}
+
+> {%
+client.global.set("Dimension_id", JSON.parse(response.body).data.id);
+%}
+
+###鎺堟潈缁村害鏌ョ湅
+GET {{baseUrl}}/dimension/info?id={{Dimension_id}}
+Accept: application/json
+
+###鎺堟潈缁村害缂栬緫
+GET {{baseUrl}}/dimension/edit?id={{Dimension_id}}
+Accept: application/json
+
+
+###鎺堟潈缁村害鍒犻櫎
+GET {{baseUrl}}/dimension/delete?id={{Dimension_id}}
+Authorization: {{authToken}}
+Accept: application/json
+
+
+
+
diff --git a/base-manager/src/test/java/com/mortals/httpclient/dimension/DimensionResourceRuleController.http b/base-manager/src/test/java/com/mortals/httpclient/dimension/DimensionResourceRuleController.http
new file mode 100644
index 0000000000000000000000000000000000000000..80cd4deecb91e45a12b2677aa53b8e907ece2d41
--- /dev/null
+++ b/base-manager/src/test/java/com/mortals/httpclient/dimension/DimensionResourceRuleController.http
@@ -0,0 +1,61 @@
+###鐧诲綍
+POST {{baseUrl}}/login/login
+Content-Type: application/json
+
+{
+"loginName":"admin",
+"password":"admin",
+"securityCode":"8888"
+}
+
+> {%
+client.global.set("SmsSet_id", JSON.parse(response.body).data.id);
+client.global.set("authToken", JSON.parse(response.body).data.token);
+%}
+
+###瑙掕壊璧勬簮缁村害瑙勫垯鍒楄〃
+POST {{baseUrl}}/dimension/resource/rule/list
+Content-Type: application/json
+
+{
+    "page":1,
+    "size":10
+}
+
+
+###瑙掕壊璧勬簮缁村害瑙勫垯鏇存柊涓庝繚瀛�
+POST {{baseUrl}}/dimension/resource/rule/save
+Authorization: {{authToken}}
+Content-Type: application/json
+
+{
+        "roleId":506,
+        "resourceId":118,
+        "ruleCode":"XhCY8s",
+        "ruleName":"1XHmAY",
+        "ruleCondition":"IN",
+        "ruleValue":"HiaFt9",
+        "ruleType":1,
+}
+
+> {%
+client.global.set("DimensionResourceRule_id", JSON.parse(response.body).data.id);
+%}
+
+###瑙掕壊璧勬簮缁村害瑙勫垯鏌ョ湅
+GET {{baseUrl}}/dimension/resource/rule/info?id={{DimensionResourceRule_id}}
+Accept: application/json
+
+###瑙掕壊璧勬簮缁村害瑙勫垯缂栬緫
+GET {{baseUrl}}/dimension/resource/rule/edit?id={{DimensionResourceRule_id}}
+Accept: application/json
+
+
+###瑙掕壊璧勬簮缁村害瑙勫垯鍒犻櫎
+GET {{baseUrl}}/dimension/resource/rule/delete?id={{DimensionResourceRule_id}}
+Authorization: {{authToken}}
+Accept: application/json
+
+
+
+
diff --git a/base-manager/src/test/java/com/mortals/httpclient/matter/MatterController.http b/base-manager/src/test/java/com/mortals/httpclient/matter/MatterController.http
index c5d3c0399cb795c777139c913834c34bb6006271..451462f262c95f1e593699b25fc1d56bd8d4fa23 100644
--- a/base-manager/src/test/java/com/mortals/httpclient/matter/MatterController.http
+++ b/base-manager/src/test/java/com/mortals/httpclient/matter/MatterController.http
@@ -25,6 +25,21 @@ Content-Type: application/json
 
 }
 
+
+###鐢熸垚鏂囨湰
+POST {{baseUrl}}/matter/genMatterTxt
+Content-Type: application/json
+
+{}
+
+
+###鐢熸垚鏂囨湰1
+POST {{baseUrl}}/matter/genMatterMarkdown
+Content-Type: application/json
+
+{}
+
+
 ###鍩虹浜嬮」鍒楄〃
 POST {{baseUrl}}/site/matter/list
 Content-Type: application/json
diff --git a/base-manager/src/test/java/com/mortals/httpclient/ph/PhQueueController.http b/base-manager/src/test/java/com/mortals/httpclient/ph/PhQueueController.http
new file mode 100644
index 0000000000000000000000000000000000000000..3a56a81df203d703c9acf6e33a4968eb77d0e084
--- /dev/null
+++ b/base-manager/src/test/java/com/mortals/httpclient/ph/PhQueueController.http
@@ -0,0 +1,84 @@
+###鐧诲綍
+POST {{baseUrl}}/login/login
+Content-Type: application/json
+
+{
+"loginName":"admin",
+"password":"admin",
+"securityCode":"8888"
+}
+
+> {%
+client.global.set("SmsSet_id", JSON.parse(response.body).data.id);
+client.global.set("authToken", JSON.parse(response.body).data.token);
+%}
+
+###鎺掑彿姹囨€诲垪琛�
+POST {{baseUrl}}/ph/queue/list
+Content-Type: application/json
+
+{
+    "page":1,
+    "size":10
+}
+
+
+###鎺掑彿姹囨€绘洿鏂颁笌淇濆瓨
+POST {{baseUrl}}/ph/queue/save
+Authorization: {{authToken}}
+Content-Type: application/json
+
+{
+        "ordernumber":"addtBJ",
+        "style":"鏈彨鍙�",
+        "business":"qdKnAF",
+        "windowName":"fFkdlu",
+        "windowFromnum":"dMLXLG",
+        "flownum":"Um9INN",
+        "formernum":"Sx3gb6",
+        "peopleIdcard":"VfS6Xk",
+        "peopleName":"BZAYKD",
+        "peopleSex":"a1LaM3",
+        "peoplePhone":"nH10yu",
+        "workmanName":"l0DDCz",
+        "workmanNumber":"U0l5x4",
+        "taketime":"1712592000000",
+        "calltime":"1712592000000",
+        "endtime":"1712592000000",
+        "waitTime":0,
+        "handleTime":0,
+        "deviceName":"oVFvi7",
+        "callName":"zQ04Ri",
+        "matterName":"UBwXu5",
+        "queueid":"42lyL3",
+        "wySignin":"鐜板満鍙栧彿",
+        "sectionName":"0CEkDm",
+        "hallName":"ASmxoc",
+        "deviceType":"鎺掑彿鏈�",
+        "siteId":0,
+        "siteCode":"ffN09b",
+        "siteName":"fIoxJO",
+        "extNum":"mJdlw4",
+}
+
+> {%
+client.global.set("PhQueue_id", JSON.parse(response.body).data.id);
+%}
+
+###鎺掑彿姹囨€绘煡鐪�
+GET {{baseUrl}}/ph/queue/info?id={{PhQueue_id}}
+Accept: application/json
+
+###鎺掑彿姹囨€荤紪杈�
+GET {{baseUrl}}/ph/queue/edit?id={{PhQueue_id}}
+Accept: application/json
+
+
+###鎺掑彿姹囨€诲垹闄�
+GET {{baseUrl}}/ph/queue/delete?id={{PhQueue_id}}
+Authorization: {{authToken}}
+Accept: application/json
+
+
+
+
diff --git a/base-manager/src/test/java/com/mortals/httpclient/pj/PjEvaluateController.http b/base-manager/src/test/java/com/mortals/httpclient/pj/PjEvaluateController.http
new file mode 100644
index 0000000000000000000000000000000000000000..779078caa72d49990f037eaf9ca3546496613599
--- /dev/null
+++ b/base-manager/src/test/java/com/mortals/httpclient/pj/PjEvaluateController.http
@@ -0,0 +1,85 @@
+###鐧诲綍
+POST {{baseUrl}}/login/login
+Content-Type: application/json
+
+{
+"loginName":"admin",
+"password":"admin",
+"securityCode":"8888"
+}
+
+> {%
+client.global.set("SmsSet_id", JSON.parse(response.body).data.id);
+client.global.set("authToken", JSON.parse(response.body).data.token);
+%}
+
+###璇勪环姹囨€诲垪琛�
+POST {{baseUrl}}/pj/evaluate/list
+Content-Type: application/json
+
+{
+    "page":1,
+    "size":10
+}
+
+
+###璇勪环姹囨€绘洿鏂颁笌淇濆瓨
+POST {{baseUrl}}/pj/evaluate/save
+Authorization: {{authToken}}
+Content-Type: application/json
+
+{
+        "peopleIdcard":"snZS5A",
+        "peopleName":"AmUiOm",
+        "peopleSex":"mkvrTF",
+        "peoplePhone":"37a4T3",
+        "pjOption":"mdVOnL",
+        "contentTag":"jl8xv2",
+        "picUrl":"BGNr0D",
+        "sectionName":"yVM2SE",
+        "hallName":"vTcXaf",
+        "pjSource":"jdkCLi",
+        "opinion":"Ah3ETA",
+        "windowName":"5oK21X",
+        "windowFromnum":"pzl4kw",
+        "flounum":"FIsY0p",
+        "pjxt":"绐楀彛璇勪环",
+        "workmanName":"u3u775",
+        "workmanNumber":"dCOirx",
+        "devicenum":"AsK2ye",
+        "evaluatestatus":"绛夊緟璇勪环",
+        "evaluatetype":"鎴浘",
+        "photobefor":"DQJe0a",
+        "photoautograph":"k06ZIZ",
+        "picture":"LLHjrm",
+        "process":"i95lNE",
+        "eyevaluate":"鏈爣璁�",
+        "pjType":"绐楀彛璇勪环",
+        "pjTime":"1712592000000",
+        "siteId":0,
+        "siteCode":"PO98kN",
+        "siteName":"CZ26Cv",
+        "extNum":"x0Zcd3",
+}
+
+> {%
+client.global.set("PjEvaluate_id", JSON.parse(response.body).data.id);
+%}
+
+###璇勪环姹囨€绘煡鐪�
+GET {{baseUrl}}/pj/evaluate/info?id={{PjEvaluate_id}}
+Accept: application/json
+
+###璇勪环姹囨€荤紪杈�
+GET {{baseUrl}}/pj/evaluate/edit?id={{PjEvaluate_id}}
+Accept: application/json
+
+
+###璇勪环姹囨€诲垹闄�
+GET {{baseUrl}}/pj/evaluate/delete?id={{PjEvaluate_id}}
+Authorization: {{authToken}}
+Accept: application/json
+
+
+
+
diff --git a/base-manager/src/test/java/com/mortals/httpclient/site/SiteBusinessController.http b/base-manager/src/test/java/com/mortals/httpclient/site/SiteBusinessController.http
index 9e5fc2337a69e257a9dfb3ffc27654ca1a579d16..d8b1c7c8273eea5877f7d1fd9be679531d86b25d 100644
--- a/base-manager/src/test/java/com/mortals/httpclient/site/SiteBusinessController.http
+++ b/base-manager/src/test/java/com/mortals/httpclient/site/SiteBusinessController.http
@@ -4,8 +4,8 @@ POST {{baseUrl}}/site/business/interlist
 Content-Type: application/json
 
 {
-
-   "siteId": 22
+   "siteId": 1,
+  "size":100
 
 }
 
diff --git a/base-manager/src/test/java/com/mortals/httpclient/site/SiteController.http b/base-manager/src/test/java/com/mortals/httpclient/site/SiteController.http
index 6c8a5d5697a440c553856768b2208fdcc4e028f1..907430c97ee869d50b5fa68dc0374512d78c48c9 100644
--- a/base-manager/src/test/java/com/mortals/httpclient/site/SiteController.http
+++ b/base-manager/src/test/java/com/mortals/httpclient/site/SiteController.http
@@ -115,7 +115,7 @@ POST {{baseUrl}}/site/syncGovMatterBySiteId
 Content-Type: application/json
 
 {
-  "id":22
+  "id":1
 }
 
 
diff --git a/base-manager/src/test/java/com/mortals/httpclient/skin/SkinBaseController.http b/base-manager/src/test/java/com/mortals/httpclient/skin/SkinBaseController.http
index 3bc5d099b3341a53a477a185392d53cf3cebb1ab..a0e98b385a68e35a811a6dfd8550f523547e9062 100644
--- a/base-manager/src/test/java/com/mortals/httpclient/skin/SkinBaseController.http
+++ b/base-manager/src/test/java/com/mortals/httpclient/skin/SkinBaseController.http
@@ -36,7 +36,7 @@ client.global.set("SkinBase_id", JSON.parse(response.body).data.id);
 %}
 
 ###绯荤粺鍩虹鐨偆鏌ョ湅
-GET {{baseUrl}}/skin/base/interview?id=160
+GET {{baseUrl}}/skin/base/interview?id=93
 Accept: application/json
 
 ###绯荤粺鍩虹鐨偆缂栬緫
diff --git a/portal-manager-ui/admin/src/components/reportformsForm/DepartmentSearch.vue b/portal-manager-ui/admin/src/components/reportformsForm/DepartmentSearch.vue
index bf4198550f5d9004b5be80b4802007e43edf1aa6..e0f181640a8397d0e265df2b8253afd87fc279ac 100644
--- a/portal-manager-ui/admin/src/components/reportformsForm/DepartmentSearch.vue
+++ b/portal-manager-ui/admin/src/components/reportformsForm/DepartmentSearch.vue
@@ -86,7 +86,7 @@
       <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
       <a-input
         allowClear
-        placeholder="璇疯緭鍏ヨ瘎浠蜂汉濮撳悕鎴栫獥鍙g紪鍙锋悳绱�"
+        placeholder="璇疯緭鍏ヨ瘎浠蜂汉濮撳悕鎴栨帓闃熺紪鍙锋悳绱�"
         v-model="searchForm.info"
       />
       <a-button block class="search-btn" icon="search" @click="handleSearch">
diff --git a/portal-manager-ui/admin/src/components/reportformsForm/MatterSearch.vue b/portal-manager-ui/admin/src/components/reportformsForm/MatterSearch.vue
index 08e031e9b6acc891d471f950cd3586ee44d6b1ab..5595108bf68e19bc1832e02bfeb2ae11810c653f 100644
--- a/portal-manager-ui/admin/src/components/reportformsForm/MatterSearch.vue
+++ b/portal-manager-ui/admin/src/components/reportformsForm/MatterSearch.vue
@@ -86,7 +86,7 @@
       <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
       <a-input
         allowClear
-        placeholder="璇疯緭鍏ヨ瘎浠蜂汉濮撳悕鎴栫獥鍙g紪鍙锋悳绱�"
+        placeholder="璇疯緭鍏ヨ瘎浠蜂汉濮撳悕鎴栨帓闃熺紪鍙锋悳绱�"
         v-model="searchForm.info"
       />
       <a-button block class="search-btn" icon="search" @click="handleSearch">
diff --git a/portal-manager-ui/admin/src/components/reportformsForm/WindowSearch.vue b/portal-manager-ui/admin/src/components/reportformsForm/WindowSearch.vue
index e38d40f64f767f249204495c4475b635ae0aa69d..076c301cc3492cd3676a66cec504e693a928e6a8 100644
--- a/portal-manager-ui/admin/src/components/reportformsForm/WindowSearch.vue
+++ b/portal-manager-ui/admin/src/components/reportformsForm/WindowSearch.vue
@@ -86,7 +86,7 @@
       <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
       <a-input
         allowClear
-        placeholder="璇疯緭鍏ヨ瘎浠蜂汉濮撳悕鎴栫獥鍙g紪鍙锋悳绱�"
+        placeholder="璇疯緭鍏ヨ瘎浠蜂汉濮撳悕鎴栨帓闃熺紪鍙锋悳绱�"
         v-model="searchForm.info"
       />
       <a-button block class="search-btn" icon="search" @click="handleSearch">
diff --git a/portal-manager-ui/admin/src/router/routes.js b/portal-manager-ui/admin/src/router/routes.js
index b9752991988477574f1be98addb968fb4b80fab7..5f3cc23c93152376a14ff4237bbbc57fdf82c10a 100644
--- a/portal-manager-ui/admin/src/router/routes.js
+++ b/portal-manager-ui/admin/src/router/routes.js
@@ -337,7 +337,7 @@ const routes = [
                     /* webpackChunkName: "matterEvaluation" */ "@/views/dataAdmin/components/evaluationRecordReport/matterEvaluation.vue"
                   ),
                 meta: {
-                  title: "鍔炵悊浜嬮」璇勪环璁板綍鎶ヨ〃",
+                  title: "涓€鍙蜂竴璇勮褰曟姤琛�",
                   activeMenu: "/home/dataManagement",
                 },
               },
diff --git a/portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/components/HandlingDetails.vue b/portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/components/HandlingDetails.vue
index 9355fffdb608b1d09ea4405b12be3071806761ec..b28231b0e2e9470ef176751fa8fc16009d41c63b 100644
--- a/portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/components/HandlingDetails.vue
+++ b/portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/components/HandlingDetails.vue
@@ -1,12 +1,6 @@
 <template>
   <div>
-    <a-drawer
-      :title="title"
-      placement="right"
-      width="700px"
-      :visible="Visible"
-      @close="onClose"
-    >
+    <a-drawer :title="title" placement="right" width="700px" :visible="Visible" @close="onClose">
       <!-- 璇勪环  -->
       <div v-if="type == 1">
         <a-steps direction="vertical" :current="1">
@@ -15,129 +9,87 @@
             <div slot="description" class="transact-step">
               <a-row :gutter="[0, 10]">
                 <a-col :span="12">
-                  <span
-                    ><span class="lable">璇勪环浜猴細</span
-                    >{{
-                      detailsInfo.idcard_Name ? detailsInfo.idcard_Name : "--"
-                    }}</span
-                  >
+                  <span><span class="lable">璇勪环浜猴細</span>{{
+                    detailsInfo.idcard_Name ? detailsInfo.idcard_Name : "--"
+                  }}</span>
                 </a-col>
                 <a-col :span="12">
-                  <span
-                    ><span class="lable">鎵嬫満鍙�:</span
-                    >{{ detailsInfo.phone ? detailsInfo.phone : "--" }}</span
-                  >
+                  <span><span class="lable">鎵嬫満鍙�:</span>{{ detailsInfo.phone ? detailsInfo.phone : "--" }}</span>
                 </a-col>
               </a-row>
               <a-row :gutter="[0, 10]">
                 <a-col :span="12">
-                  <span
-                    ><span class="lable">韬唤璇佸彿锛�</span
-                    >{{
-                      detailsInfo.idcard_IDCardNo
-                        ? detailsInfo.idcard_IDCardNo
-                        : "--"
-                    }}</span
-                  >
+                  <span><span class="lable">韬唤璇佸彿锛�</span>{{
+                    detailsInfo.idcard_IDCardNo
+                      ? detailsInfo.idcard_IDCardNo
+                      : "--"
+                  }}</span>
                 </a-col>
                 <a-col :span="12">
-                  <span
-                    ><span class="lable">绐楀彛缂栧彿锛�</span
-                    >{{
-                      detailsInfo.window_fronum
-                        ? detailsInfo.window_fronum
-                        : "--"
-                    }}</span
-                  >
+                  <span><span class="lable">绐楀彛缂栧彿锛�</span>{{
+                    detailsInfo.window_fronum
+                      ? detailsInfo.window_fronum
+                      : "--"
+                  }}</span>
                 </a-col>
               </a-row>
               <a-row :gutter="[0, 10]">
                 <a-col :span="12">
-                  <span
-                    ><span class="lable">璇勪环閫夐」锛�</span
-                    >{{
-                      detailsInfo.option_id ? detailsInfo.option_id : "--"
-                    }}</span
-                  >
+                  <span><span class="lable">璇勪环閫夐」锛�</span>{{
+                    detailsInfo.option_id ? detailsInfo.option_id : "--"
+                  }}</span>
                 </a-col>
                 <a-col :span="12">
-                  <span
-                    ><span class="lable">璇勪环鏃堕棿锛�</span
-                    >{{
-                      detailsInfo.create_time ? detailsInfo.create_time : "--"
-                    }}</span
-                  >
+                  <span><span class="lable">璇勪环鏃堕棿锛�</span>{{
+                    detailsInfo.create_time ? detailsInfo.create_time : "--"
+                  }}</span>
                 </a-col>
               </a-row>
               <a-row :gutter="[0, 10]">
                 <a-col :span="24">
                   <span class="lable">璇勪环鎸囨爣锛�</span>
-                  <a-tag
-                    color="blue"
-                    class="mb-1"
-                    v-for="(item, index) in detailsInfo.content"
-                    :key="index"
-                  >
+                  <a-tag color="blue" class="mb-1" v-for="(item, index) in detailsInfo.content" :key="index">
                     {{ item }}
                   </a-tag>
                 </a-col>
               </a-row>
               <a-row :gutter="[0, 10]">
                 <a-col :span="12">
-                  <span
-                    ><span class="lable">璇勪环鏉ユ簮锛�</span
-                    >{{ detailsInfo.source ? detailsInfo.source : "--" }}</span
-                  >
+                  <span><span class="lable">璇勪环鏉ユ簮锛�</span>{{ detailsInfo.source ? detailsInfo.source : "--" }}</span>
                 </a-col>
                 <a-col :span="12">
-                  <span
-                    ><span class="lable">璇勪环璁惧锛�</span
-                    >{{
-                      detailsInfo.devicenum ? detailsInfo.devicenum : "--"
-                    }}</span
-                  >
+                  <span><span class="lable">璇勪环璁惧锛�</span>{{
+                    detailsInfo.devicenum ? detailsInfo.devicenum : "--"
+                  }}</span>
                 </a-col>
               </a-row>
               <a-row :gutter="[0, 10]">
                 <a-col :span="12">
-                  <span
-                    ><span class="lable">璇勪环鐘舵€侊細</span
-                    >{{
-                      !detailsInfo.evaluatestatus
-                        ? "--"
-                        : detailsInfo.evaluatestatus == 1
+                  <span><span class="lable">璇勪环鐘舵€侊細</span>{{
+                    !detailsInfo.evaluatestatus
+                      ? "--"
+                      : detailsInfo.evaluatestatus == 1
                         ? "绛夊緟璇勪环"
                         : detailsInfo.evaluatestatus == 2
-                        ? "瀹屾垚"
-                        : detailsInfo.evaluatestatus == 3
-                        ? "鎴浘鏈夎"
-                        : detailsInfo.evaluatestatus == 4
-                        ? "鐢ㄦ埛鎴浘绛惧悕瓒呮椂"
-                        : detailsInfo.evaluatestatus == 5
-                        ? "鐢ㄦ埛璇勪环瓒呮椂"
-                        : "鏀跺埌鍥剧墖绛夊緟绛惧悕"
-                    }}</span
-                  >
+                          ? "瀹屾垚"
+                          : detailsInfo.evaluatestatus == 3
+                            ? "鎴浘鏈夎"
+                            : detailsInfo.evaluatestatus == 4
+                              ? "鐢ㄦ埛鎴浘绛惧悕瓒呮椂"
+                              : detailsInfo.evaluatestatus == 5
+                                ? "鐢ㄦ埛璇勪环瓒呮椂"
+                                : "鏀跺埌鍥剧墖绛夊緟绛惧悕"
+                  }}</span>
                 </a-col>
                 <a-col :span="12">
                   <span>
                     <span class="lable">璇勪环浜虹収鐗囷細</span>
-                    <a-avatar
-                      v-if="!detailsInfo.picture"
-                      shape="square"
-                      :size="40"
-                      icon="user"
-                    />
-                    <img
-                      v-else
-                      :src="baseurl + '/' + detailsInfo.picture"
-                      @click="
-                        $viewerApi({
-                          images: [baseurl + '/' + detailsInfo.picture],
-                        })
-                      "
-                      class="cursor-pointer w-[50px] max-h-[50px] rounded-[4px]"
-                    />
+                    <a-avatar v-if="!detailsInfo.picture" shape="square" :size="40" icon="user" />
+                    <img v-else :src="baseurl + '/' + detailsInfo.picture" @click="
+                      $viewerApi({
+                        images: [baseurl + '/' + detailsInfo.picture],
+                      })
+                      " class="cursor-pointer w-[50px] max-h-[50px] rounded-[4px]" />
                   </span>
                 </a-col>
               </a-row>
@@ -152,16 +104,11 @@
           <div class="elapsed-time">
             <p class="elapsed-time-title">
               <span>鎬昏€楁椂锛�</span>
-              <span
-                >{{ detailsInfo.alltime ? detailsInfo.alltime : "--" }}
+              <span>{{ detailsInfo.alltime ? detailsInfo.alltime : "--" }}
                 <span v-if="detailsInfo.alltime">
-                  <a-icon
-                    v-if="
-                      compareTime(detailsInfo.alltime, detailsInfo.p_alltime)
-                    "
-                    type="arrow-up"
-                    style="color: #ff4d4f"
-                  />
+                  <a-icon v-if="
+                    compareTime(detailsInfo.alltime, detailsInfo.p_alltime)
+                  " type="arrow-up" style="color: #ff4d4f" />
                   <a-icon v-else type="arrow-down" style="color: #1bbc9b" />
                 </span>
               </span>
@@ -180,13 +127,9 @@
                 detailsInfo.waittime ? detailsInfo.waittime : "--"
               }}</span>
               <span v-if="detailsInfo.waittime">
-                <a-icon
-                  v-if="
-                    compareTime(detailsInfo.waittime, detailsInfo.p_waittime)
-                  "
-                  type="arrow-up"
-                  style="color: #ff4d4f"
-                />
+                <a-icon v-if="
+                  compareTime(detailsInfo.waittime, detailsInfo.p_waittime)
+                " type="arrow-up" style="color: #ff4d4f" />
                 <a-icon v-else type="arrow-down" style="color: #1bbc9b" />
               </span>
             </p>
@@ -202,11 +145,8 @@
               <span>鍔炵悊鏃堕棿锛�</span>
               <span>{{ detailsInfo.bltime ? detailsInfo.bltime : "--" }}</span>
               <span v-if="detailsInfo.bltime">
-                <a-icon
-                  v-if="compareTime(detailsInfo.bltime, detailsInfo.p_bltime)"
-                  type="arrow-up"
-                  style="color: #ff4d4f"
-                />
+                <a-icon v-if="compareTime(detailsInfo.bltime, detailsInfo.p_bltime)" type="arrow-up"
+                  style="color: #ff4d4f" />
                 <a-icon v-else type="arrow-down" style="color: #1bbc9b" />
               </span>
             </p>
@@ -233,12 +173,10 @@
               </a-row>
               <a-row :gutter="[0, 8]">
                 <a-col :span="12">
-                  <span>鎺掗槦缂栧彿锛�</span
-                  >{{ detailsInfo.flownum ? detailsInfo.flownum : "--" }}
+                  <span>鎺掗槦缂栧彿锛�</span>{{ detailsInfo.flownum ? detailsInfo.flownum : "--" }}
                 </a-col>
                 <a-col :span="12">
-                  <span>鍙栧彿鏂瑰紡锛�</span
-                  >{{ detailsInfo.wy_signin === 0 ? "鐜板満鍙栧彿" : "绾夸笂鍙栧彿" }}
+                  <span>鍙栧彿鏂瑰紡锛�</span>{{ detailsInfo.wy_signin === 0 ? "鐜板満鍙栧彿" : "绾夸笂鍙栧彿" }}
                 </a-col>
               </a-row>
               <a-row :gutter="[0, 8]">
@@ -262,15 +200,12 @@
               </div>
             </div>
           </a-step>
-          <a-step
-            title="鍔炵悊涓�"
-            v-if="detailsInfo.style === 1 || detailsInfo.style === 4"
-          >
+          <a-step title="鍔炵悊涓�" v-if="detailsInfo.style === 1 || detailsInfo.style === 4">
             <a-icon type="environment" slot="icon" />
             <div slot="description">
               <a-row :gutter="[0, 8]">
                 <a-col :span="12">
-                  <span>鍔炵悊绐楀彛锛�</span>{{ detailsInfo.window_name }}
+                  <span>鍔炵悊绐楀彛锛�</span>{{ detailsInfo.window_name }}-{{ detailsInfo.window_fromnum }}
                 </a-col>
                 <a-col :span="12">
                   <span>寮€濮嬪姙鐞嗘椂闂达細</span>{{ detailsInfo.calltime }}
@@ -302,79 +237,54 @@
               </a-row>
               <a-row :gutter="[0, 8]">
                 <a-col :span="12">
-                  <span>璇勪环鏃堕棿锛�</span
-                  >{{ detailsInfo.pj_time ? detailsInfo.pj_time : "--" }}
+                  <span>璇勪环鏃堕棿锛�</span>{{ detailsInfo.pj_time ? detailsInfo.pj_time : "--" }}
                 </a-col>
               </a-row>
               <a-row :gutter="[0, 8]">
                 <a-col :span="24">
                   <span>璇勪环鎸囨爣锛�</span>
-                  <a-tag
-                    color="blue"
-                    class="mb-1"
-                    v-for="(item, index) in detailsInfo.content"
-                    :key="index"
-                  >
+                  <a-tag color="blue" class="mb-1" v-for="(item, index) in detailsInfo.content" :key="index">
                     {{ item }}
                   </a-tag>
                 </a-col>
               </a-row>
               <a-row :gutter="[0, 10]">
                 <a-col :span="12">
-                  <span
-                    ><span class="lable">璇勪环鏉ユ簮锛�</span
-                    >{{ detailsInfo.source ? detailsInfo.source : "--" }}</span
-                  >
+                  <span><span class="lable">璇勪环鏉ユ簮锛�</span>{{ detailsInfo.source ? detailsInfo.source : "--" }}</span>
                 </a-col>
                 <a-col :span="12">
-                  <span
-                    ><span class="lable">璇勪环璁惧锛�</span
-                    >{{
-                      detailsInfo.devicenum ? detailsInfo.devicenum : "--"
-                    }}</span
-                  >
+                  <span><span class="lable">璇勪环璁惧锛�</span>{{
+                    detailsInfo.devicenum ? detailsInfo.devicenum : "--"
+                  }}</span>
                 </a-col>
               </a-row>
               <a-row :gutter="[0, 10]">
                 <a-col :span="12">
-                  <span
-                    ><span class="lable">璇勪环鐘舵€侊細</span
-                    >{{
-                      !detailsInfo.evaluatestatus
-                        ? "--"
-                        : detailsInfo.evaluatestatus == 1
+                  <span><span class="lable">璇勪环鐘舵€侊細</span>{{
+                    !detailsInfo.evaluatestatus
+                      ? "--"
+                      : detailsInfo.evaluatestatus == 1
                         ? "绛夊緟璇勪环"
                         : detailsInfo.evaluatestatus == 2
-                        ? "瀹屾垚"
-                        : detailsInfo.evaluatestatus == 3
-                        ? "鎴浘鏈夎"
-                        : detailsInfo.evaluatestatus == 4
-                        ? "鐢ㄦ埛鎴浘绛惧悕瓒呮椂"
-                        : detailsInfo.evaluatestatus == 5
-                        ? "鐢ㄦ埛璇勪环瓒呮椂"
-                        : "鏀跺埌鍥剧墖绛夊緟绛惧悕"
-                    }}</span
-                  >
+                          ? "瀹屾垚"
+                          : detailsInfo.evaluatestatus == 3
+                            ? "鎴浘鏈夎"
+                            : detailsInfo.evaluatestatus == 4
+                              ? "鐢ㄦ埛鎴浘绛惧悕瓒呮椂"
+                              : detailsInfo.evaluatestatus == 5
+                                ? "鐢ㄦ埛璇勪环瓒呮椂"
+                                : "鏀跺埌鍥剧墖绛夊緟绛惧悕"
+                  }}</span>
                 </a-col>
                 <a-col :span="12">
                   <span>
                     <span class="lable">璇勪环浜虹収鐗囷細</span>
-                    <a-avatar
-                      v-if="!detailsInfo.picture"
-                      shape="square"
-                      :size="40"
-                      icon="user"
-                    />
-                    <img
-                      v-else
-                      :src="baseurl + '/' + detailsInfo.picture"
-                      @click="
-                        $viewerApi({
-                          images: [baseurl + '/' + detailsInfo.picture],
-                        })
-                      "
-                      class="cursor-pointer w-[50px] max-h-[50px] rounded-[4px]"
-                    />
+                    <a-avatar v-if="!detailsInfo.picture" shape="square" :size="40" icon="user" />
+                    <img v-else :src="baseurl + '/' + detailsInfo.picture" @click="
+                      $viewerApi({
+                        images: [baseurl + '/' + detailsInfo.picture],
+                      })
+                      " class="cursor-pointer w-[50px] max-h-[50px] rounded-[4px]" />
                   </span>
                 </a-col>
               </a-row>
@@ -437,7 +347,7 @@ export default {
       return 1;
     },
   },
-  created() {},
+  created() { },
   methods: {
     onClose() {
       this.Visible = false;
@@ -470,6 +380,7 @@ export default {
 :deep(.ant-steps-item-title) {
   color: #1890ff !important;
 }
+
 .header {
   height: 90px;
   margin-bottom: 20px;
@@ -479,15 +390,19 @@ export default {
   display: flex;
   justify-content: space-around;
   align-items: center;
+
   .elapsed-time-title {
     font-size: 16px;
   }
+
   .time {
     color: #1890ff;
   }
 }
+
 .transact-step {
   position: relative;
+
   .transact-tips1,
   .transact-tips2,
   .transact-tips3 {
@@ -504,17 +419,20 @@ export default {
     right: 0px;
     transform: rotate(45deg);
   }
+
   .transact-tips1 {
     border: 8px solid rgba(0, 168, 112, 0.1);
     color: #00a870;
   }
+
   .transact-tips2 {
     border: 8px solid rgba(8, 87, 232, 0.1);
     color: #0857e8;
   }
+
   .transact-tips3 {
     border: 8px solid rgba(101, 101, 101, 0.1);
     color: #656565;
   }
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/matterEvaluation.vue b/portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/matterEvaluation.vue
index 73f47a91d94f1394c0f13e64d860598260637258..9bfd3c9e9570185160090e0d0b6e14757cd4edf6 100644
--- a/portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/matterEvaluation.vue
+++ b/portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/matterEvaluation.vue
@@ -6,6 +6,7 @@
       :data-source="tableData"
       :loading="loading"
       :scroll="{
+        x: 1500,
         y: 490,
       }"
       :row-selection="{
@@ -72,6 +73,8 @@ import { getEvaList, getEvaDetil, getQueEvaData } from "@/api/dataAdmin";
 const tHeader = [
   "鎺掗槦缂栧彿",
   "璇勪环閫夐」",
+  "鍔炵悊绐楀彛",
+  "宸ヤ綔浜哄憳",
   "璇勪环浜�",
   "韬唤璇佸彿",
   "鎵嬫満鍙�",
@@ -82,6 +85,8 @@ const tHeader = [
 const filterVal = [
   "flounum",
   "option_id",
+  "window",
+  "workman_name",
   "idcard_Name",
   "idcard_IDCardNo",
   "phone",
@@ -119,6 +124,22 @@ export default {
           return text ? text : "--";
         },
       },
+      {
+        title: "鍔炵悊绐楀彛",
+        width: 100,
+        dataIndex: "window",
+        customRender: (text) => {
+          return text ? text : "--";
+        },
+      },
+      {
+        title: "宸ヤ綔浜哄憳",
+        width: 100,
+        dataIndex: "workman_name",
+        customRender: (text) => {
+          return text ? text : "--";
+        },
+      },
       {
         title: "璇勪环浜�",
         width: 100,
@@ -328,7 +349,7 @@ export default {
           this.tHeader,
           this.filterVal,
           data,
-          "鍔炵悊浜嬮」璇勪环璁板綍鎶ヨ〃" + this.$moment().format("YYYYMMDDHHmmss")
+          "涓€鍙蜂竴璇勮褰曟姤琛�" + this.$moment().format("YYYYMMDDHHmmss")
         );
       } else {
         this.dataSection(this.getDataList, {}, (data) => {
@@ -347,7 +368,7 @@ export default {
             this.tHeader,
             this.filterVal,
             data,
-            "鍔炵悊浜嬮」璇勪环璁板綍鎶ヨ〃" + this.$moment().format("YYYYMMDDHHmmss")
+            "涓€鍙蜂竴璇勮褰曟姤琛�" + this.$moment().format("YYYYMMDDHHmmss")
           );
         });
       }
diff --git a/portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/staffLeft.vue b/portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/staffLeft.vue
index 19f8dc41a6bf388e07435e9617ec08ee4324a874..cfcd3f8ab658d356ec910e6eb3538b2db0990517 100644
--- a/portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/staffLeft.vue
+++ b/portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/staffLeft.vue
@@ -253,7 +253,7 @@ export default {
           this.tHeader,
           this.filterVal,
           data,
-          "鍔炵悊浜嬮」璇勪环璁板綍鎶ヨ〃" + this.$moment().format("YYYYMMDDHHmmss")
+          "涓€鍙蜂竴璇勮褰曟姤琛�" + this.$moment().format("YYYYMMDDHHmmss")
         );
       } else {
         this.dataSection(this.getDataList, {}, (data) => {
@@ -272,7 +272,7 @@ export default {
             this.tHeader,
             this.filterVal,
             data,
-            "鍔炵悊浜嬮」璇勪环璁板綍鎶ヨ〃" + this.$moment().format("YYYYMMDDHHmmss")
+            "涓€鍙蜂竴璇勮褰曟姤琛�" + this.$moment().format("YYYYMMDDHHmmss")
           );
         });
       }
diff --git a/portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/windowLeft.vue b/portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/windowLeft.vue
index 5e56859145fc74206a3da8fbe1cf43e20ff778b3..60fd985c6d34b271de52a0196d21039d0beefe07 100644
--- a/portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/windowLeft.vue
+++ b/portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/windowLeft.vue
@@ -253,7 +253,7 @@ export default {
           this.tHeader,
           this.filterVal,
           data,
-          "鍔炵悊浜嬮」璇勪环璁板綍鎶ヨ〃" + this.$moment().format("YYYYMMDDHHmmss")
+          "涓€鍙蜂竴璇勮褰曟姤琛�" + this.$moment().format("YYYYMMDDHHmmss")
         );
       } else {
         this.dataSection(this.getDataList, {}, (data) => {
@@ -272,7 +272,7 @@ export default {
             this.tHeader,
             this.filterVal,
             data,
-            "鍔炵悊浜嬮」璇勪环璁板綍鎶ヨ〃" + this.$moment().format("YYYYMMDDHHmmss")
+            "涓€鍙蜂竴璇勮褰曟姤琛�" + this.$moment().format("YYYYMMDDHHmmss")
           );
         });
       }
diff --git a/portal-manager/src/main/java/com/mortals/xhx/module/user/service/impl/UserServiceImpl.java b/portal-manager/src/main/java/com/mortals/xhx/module/user/service/impl/UserServiceImpl.java
index 28648b365ec868870ac166424b3d57d223b176aa..168069638bcffa3058bb5eff18d8e33779e3680a 100644
--- a/portal-manager/src/main/java/com/mortals/xhx/module/user/service/impl/UserServiceImpl.java
+++ b/portal-manager/src/main/java/com/mortals/xhx/module/user/service/impl/UserServiceImpl.java
@@ -208,13 +208,14 @@ public class UserServiceImpl extends AbstractCRUDCacheServiceImpl<UserDao, UserE
         if (sysUser.getLoginLock() == null) {
             sysUser.setLoginLock(0);
         }
-        if (sysUser.getLoginLock() == 1 && sysUser.getLockTime() != null) {
+        //鍙栨秷璐︽埛閿佸畾鍔熻兘
+/*        if (sysUser.getLoginLock() == 1 && sysUser.getLockTime() != null) {
             String nowStr = DateUtils.getCurrStrDate();
             String loginDateStr = DateUtils.getDateTime(sysUser.getLockTime(), "yyyy-MM-dd");
             if (nowStr.equals(loginDateStr)) {
                 throw new AppException("姝よ处鍙峰綋澶╁瘑鐮侀敊璇鏁板凡杈句笂闄愶紝宸茶閿佸畾");
             }
-        }
+        }*/
 
         try {
             if (StringUtils.isNotEmpty(sysUser.getSaltKey())) {
diff --git a/portal-manager/src/test/java/com/mortals/httpclient/system.http b/portal-manager/src/test/java/com/mortals/httpclient/system.http
index 7ae5638f9b54116ac4248ab0c4d9eb3cc35f9ed9..7250573e82db4e0d2da0fa00e5eaa501fa443327 100644
--- a/portal-manager/src/test/java/com/mortals/httpclient/system.http
+++ b/portal-manager/src/test/java/com/mortals/httpclient/system.http
@@ -16,7 +16,7 @@ Content-Type: application/json
 {
   "loginName":"admin",
   "password":"admin",
-  "securityCode":"8888"
+  "securityCode":"admin"
 }
 
 > {%
diff --git a/smart-gateway/src/main/java/com/mortals/xhx/base/framework/filter/AuthFilter.java b/smart-gateway/src/main/java/com/mortals/xhx/base/framework/filter/AuthFilter.java
deleted file mode 100644
index 6cfae28bc89f1c9a3543ab2408258a2e20b965bc..0000000000000000000000000000000000000000
--- a/smart-gateway/src/main/java/com/mortals/xhx/base/framework/filter/AuthFilter.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.mortals.xhx.base.framework.filter;
-
-import cn.dev33.satoken.reactor.filter.SaReactorFilter;
-import cn.dev33.satoken.router.SaRouter;
-import cn.dev33.satoken.stp.StpUtil;
-import cn.dev33.satoken.util.SaResult;
-import com.mortals.framework.common.HttpStatus;
-import com.mortals.xhx.base.framework.config.IgnoreWhiteProperties;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * Sa-Token 鏉冮檺璁よ瘉鎷︽埅鍣�
- *
- * @author: zxfei
- * @date: 2022/6/17 15:18
- */
-//@Configuration
-public class AuthFilter {
-
-    /**
-     * 娉ㄥ唽 Sa-Token 鍏ㄥ眬杩囨护鍣�
-     */
-    @Bean
-    public SaReactorFilter getSaReactorFilter(IgnoreWhiteProperties ignoreWhite) {
-        return new SaReactorFilter()
-                // 鎷︽埅鍦板潃
-                .addInclude("/**")
-                //鎺掗櫎鍦板潃
-                .addExclude("/favicon.ico", "/actuator/**")
-                // 閴存潈鏂规硶锛氭瘡娆¤闂繘鍏�
-                .setAuth(obj -> {
-                    // 鐧诲綍鏍¢獙 -- 鎷︽埅鎵€鏈夎矾鐢�
-                    SaRouter.match("/**")
-                            .notMatch(ignoreWhite.getWhites())
-                            .check(r -> {
-                                // 妫€鏌ユ槸鍚︾櫥褰� 鏄惁鏈塼oken
-                                // StpUtil.checkLogin();
-                                // 鏈夋晥鐜囧奖鍝� 鐢ㄤ簬涓存椂娴嬭瘯
-                                // if (log.isDebugEnabled()) {
-                                //     log.debug("鍓╀綑鏈夋晥鏃堕棿: {}", StpUtil.getTokenTimeout());
-                                //     log.debug("涓存椂鏈夋晥鏃堕棿: {}", StpUtil.getTokenActivityTimeout());
-                                // }
-                            });
-                }).setError(e -> SaResult.error("璁よ瘉澶辫触锛屾棤娉曡闂郴缁熻祫婧�").setCode(HttpStatus.UNAUTHORIZED));
-    }
-}