From 1574ba165b9ae024a093043648c0741b50f8a55d Mon Sep 17 00:00:00 2001
From: linzhijie <19970921lzj>
Date: 星期一, 12 四月 2021 11:59:57 +0800
Subject: [PATCH] 最新代码

---
 /dev/null           |  141 -----------------------------------
 .idea/workspace.xml |   46 +++++++++++
 2 files changed, 44 insertions(+), 143 deletions(-)

diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index fd446f4..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,43 +0,0 @@
-######################################################################
-# Build Tools
-
-.gradle
-/build/
-!gradle/wrapper/gradle-wrapper.jar
-
-target/
-!.mvn/wrapper/maven-wrapper.jar
-
-######################################################################
-# IDE
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
-
-### NetBeans ###
-nbproject/private/
-build/*
-nbbuild/
-dist/
-nbdist/
-.nb-gradle/
-
-######################################################################
-# Others
-*.log
-*.xml.versionsBackup
-
-!*/build/*.java
-!*/build/*.html
-!*/build/*.xml
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 4369cfd..06e9651 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,5 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
+  <component name="BranchesTreeState">
+    <expand>
+      <path>
+        <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
+        <item name="LOCAL_ROOT" type="e8cecc67:BranchNodeDescriptor" />
+      </path>
+      <path>
+        <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
+        <item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
+      </path>
+      <path>
+        <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
+        <item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
+        <item name="GROUP_NODE:origin" type="e8cecc67:BranchNodeDescriptor" />
+      </path>
+    </expand>
+    <select />
+  </component>
   <component name="ChangeListManager">
     <list default="true" id="cd72c5cc-17e9-4269-9d87-e1dc29ad79ec" name="Default Changelist" comment="" />
     <option name="SHOW_DIALOG" value="false" />
@@ -102,6 +120,23 @@
   <component name="TypeScriptGeneratedFilesManager">
     <option name="version" value="2" />
   </component>
+  <component name="Vcs.Log.Tabs.Properties">
+    <option name="TAB_STATES">
+      <map>
+        <entry key="1">
+          <value>
+            <State />
+          </value>
+        </entry>
+        <entry key="2">
+          <value>
+            <State />
+          </value>
+        </entry>
+      </map>
+    </option>
+    <option name="oldMeFiltersMigrated" value="true" />
+  </component>
   <component name="VcsManagerConfiguration">
     <MESSAGE value="娴嬭瘎椤圭洰鏈�鏂颁唬鐮�" />
     <MESSAGE value="娴嬭瘎绯荤粺澶栭儴浠g爜" />
@@ -120,10 +155,10 @@
       <screen x="0" y="0" width="1920" height="1040" />
     </state>
     <state x="740" y="274" key="FileChooserDialogImpl/0.0.1920.1040@0.0.1920.1040" timestamp="1615460475306" />
-    <state width="267" height="357" key="Git.Branch.Popup" timestamp="1615460729320">
+    <state width="269" height="359" key="Git.Branch.Popup" timestamp="1618199514062">
       <screen x="0" y="0" width="1920" height="1040" />
     </state>
-    <state width="267" height="357" key="Git.Branch.Popup/0.0.1920.1040@0.0.1920.1040" timestamp="1615460729320" />
+    <state width="269" height="359" key="Git.Branch.Popup/0.0.1920.1040@0.0.1920.1040" timestamp="1618199514062" />
     <state width="1877" height="469" key="GridCell.Tab.0.bottom" timestamp="1615455836101">
       <screen x="0" y="0" width="1920" height="1040" />
     </state>
@@ -189,4 +224,11 @@
     </state>
     <state x="623" y="225" width="672" height="678" key="search.everywhere.popup/0.0.1920.1040@0.0.1920.1040" timestamp="1615458094744" />
   </component>
+  <component name="XDebuggerManager">
+    <pin-to-top-manager>
+      <pinned-members>
+        <PinnedItemInfo typeName="com.ots.project.exam.viewmodel.ExamPaperSubmitVM" fieldName="partOrder" />
+      </pinned-members>
+    </pin-to-top-manager>
+  </component>
 </project>
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 66066ed..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2019 ESS
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/OTS-VUE-API.md b/OTS-VUE-API.md
deleted file mode 100644
index 8a5c698..0000000
--- a/OTS-VUE-API.md
+++ /dev/null
@@ -1,116 +0,0 @@
-# OTS-VUE-API
-### 浜哄彛瀛﹀彉閲忓畾涔�
-```
-GET锛歨ttp://localhost:8090/remote/member/param/403027f6-d7da-4c09-81ef-ef5bfc232cce
-```
-鍙傛暟
-```
-鏃�
-```
-杩斿洖
-```
-{
-    "code": 1,
-    "message": "鎴愬姛",
-    "response": [
-        {
-            "userId": 1,
-            "memberId": 200,
-            "paramId": 200, 
-            "paramName": "濮撳悕",
-            "types": "text",
-            "dictData": null
-        },
-        {
-            "userId": 1,
-            "memberId": 200,
-            "paramId": 201,
-            "paramName": "鎬у埆",
-            "types": "radio",
-            "dictData": [
-                {
-                    "dictLabel": "鐢�",
-                    "dictValue": "0",
-                    "dictType": "sys_user_sex",
-                    "status": "0"
-                },
-                {
-                    "dictLabel": "濂�",
-                    "dictValue": "1",
-                    "dictType": "sys_user_sex",
-                    "status": "0"
-                },
-                {
-                    "dictLabel": "鏈煡",
-                    "dictValue": "2",
-                    "dictType": "sys_user_sex",
-                    "status": "0"
-                }
-            ]
-        }
-    ]
-}
-```
-
-### 鐢ㄦ埛浜哄彛瀛︿俊鎭煡璇�
-```
-GET锛歨ttp://localhost:8090/remote/member/paramInfo/403027f6-d7da-4c09-81ef-ef5bfc232cce
-```
-鍙傛暟
-```
-鏃�
-```
-杩斿洖
-```
-{
-    "code": 1,
-    "message": "鎴愬姛",
-    "response": [
-        {
-            "searchValue": null,
-            "createBy": "",
-            "createTime": "2019-12-17 20:45:03",
-            "updateBy": "",
-            "updateTime": "2019-12-17 20:57:24",
-            "remark": null,
-            "params": {},
-            "infoId": 200,
-            "userId": 1,
-            "memberId": 200,
-            "paramId": "201",
-            "paramName": "鎬у埆",
-            "paramValue": "濂�"
-        }
-    ]
-}
-```
-
-### 淇濆瓨浜哄彛瀛︿俊鎭�
-```
-POST锛歨ttp://localhost:8090/remote/member/save/403027f6-d7da-4c09-81ef-ef5bfc232cce
-```
-鍙傛暟
-```
-[{
-	"userId": 1,
-	"memberId": 200,
-	"paramId": 201,
-	"paramName": "鎬у埆",
-	"paramValue": "鐢�"
-}, {
-	"infoId": 200,
-	"userId": 1,
-	"memberId": 200,
-	"paramId": 201,
-	"paramName": "鎬у埆",
-	"paramValue": "濂�"
-}]
-```
-杩斿洖
-```
-{
-    "code": 1,
-    "message": "鎴愬姛",
-    "response": 
-}
-```
\ No newline at end of file
diff --git a/jar/tai-ots-framework-1.0-test.jar b/jar/tai-ots-framework-1.0-test.jar
deleted file mode 100644
index 2dbff22..0000000
--- a/jar/tai-ots-framework-1.0-test.jar
+++ /dev/null
Binary files differ
diff --git a/jar/tai-ots-framework-1.0.jar b/jar/tai-ots-framework-1.0.jar
deleted file mode 100644
index 2dbff22..0000000
--- a/jar/tai-ots-framework-1.0.jar
+++ /dev/null
Binary files differ
diff --git a/ots-docs/.nojekyll b/ots-docs/.nojekyll
deleted file mode 100644
index e69de29..0000000
--- a/ots-docs/.nojekyll
+++ /dev/null
diff --git a/ots-docs/README.md b/ots-docs/README.md
deleted file mode 100644
index 2279cfd..0000000
--- a/ots-docs/README.md
+++ /dev/null
@@ -1,261 +0,0 @@
-# 骞冲彴绠�浠�
-
-娴嬭瘎鏈嶅姟绯荤粺
-TAI Online Testing System 锛圱AI鍦ㄧ嚎鑰冭瘯绯荤粺锛�
-# **2020-01-12锛氬唴缃姛鑳�**
-## 鐗堟湰鏇存柊鍐呭
-1. 瀵煎嚭璇勬祴鐢ㄦ埛绛旈璁板綍
-2. 鐢宠涓嬭浇绗簩浠芥祴璇曟姤鍛�
-3. 瀵煎嚭(鍩虹)鎶ュ憡 閮ㄥ垎鍔熻兘锛堜緷璧栨嘲鍥藉洟闃燂級
-4. 瀵煎嚭(璇︾粏)鎶ュ憡 閮ㄥ垎鍔熻兘锛堜緷璧栨嘲鍥藉洟闃燂級
-5. 浼佷笟鎶ュ憡鎺堟潈 瀹℃壒娴佺▼
-6. 鎶ュ憡鍚屾 绛旈鐘舵��
-7. 鎶ュ憡鐣岄潰澧炲姞鏌ヨ鏉′欢锛氱敤鎴风紪鐮侊紝涓嬭浇鏉冮檺锛岀瓟棰樼姸鎬�
-8. 澧炲姞鎶ュ憡鍛藉悕瑙勫垯閫昏緫
-9. MQA浜烘牸娴嬭瘯銆佹櫤鍔涙祴璇曠敤鎴风鐐瑰嚮閫夐」鑷姩涓嬩竴棰樸��
-10. 鏅哄姏棰樼敤鎴风鍥剧墖灞曠ず
-11. 浜у搧鍖呮寜闂嵎绫诲瀷鏌ヨ娣诲姞涓嬫媺妗嗐��
-12. JAQ宸ヤ綔闂嵎棰樼洰鎵归噺瀵煎叆鍔熻兘銆�
-13. 鐢ㄦ埛绔墦寮�鑷姩瀹氫綅鍒版湭鍋氶鐩��
-
-BUG淇锛�
-1. 浜烘牸娴嬭瘯鎶ュ憡涓嬭浇鐢宠 宸茬粡瀹炵幇 鍦ㄦ祴璇曞寘涓�夋嫨娴嬭瘯鍖� 鏌ョ湅娴嬭瘯鎶ュ憡锛屽凡缁忕敵璇风浜屾鎶ュ憡
-2. 鎵归噺瀵煎嚭娴嬭瘯鎶ュ憡 杞Щ鍒� 娴嬭瘯鍖�->璇勬祴鎶ュ憡 鍩虹鎶ュ憡鍜岃缁嗘姤鍛婁笅杞�
-3. 鐢宠涓嬭浇绗簩浠芥祴璇曟姤鍛� 宸茬粡淇 杞Щ鍒� 娴嬭瘯鍖�->璇勬祴鎶ュ憡    
-4. 瀵煎嚭娴嬭瘯鍖呮暟鎹� 宸茬粡淇 杞Щ鍒� 娴嬭瘯鍖�->璇勬祴鎶ュ憡
-5. 鍒涘缓浜岀骇鍒嗛攢鍟� 宸茬粡鎺堟潈
-6. 淇敼浜岀骇鍒嗛攢鍟嗕俊鎭� 宸茬粡鎺堟潈
-7. 鍒涘缓浼佷笟鐢ㄦ埛 宸茬粡鎺堟潈
-8. 澧炲姞浣跨敤浜烘 宸茬粡鎺堟潈
-9. 闂嵎鍚嶇О鏀寔妯$硦鏌ヨ銆�
-10. 鎵归噺瀵煎叆宸ヤ綔闂嵎棰樼洰宸茬粡瀹屾垚
-11. 宀椾綅涓嶆槸闇�姹傞渶瑕佺殑锛屾墍浠ヤ笉闇�瑕佺淮鎶�
-12. 棰樼洰鎬诲垎锛氳В鍐宠緭鍏ユ枃鏈姏鍑哄紓甯搞��
-13. 棰樺共锛氳В鍐虫枃鏈繃闀挎姤閿欍��
-
-
-# **2020-01-09锛氬唴缃姛鑳�**
-1. 鍙湁浼佷笟鐢ㄦ埛鎴栬�呭瓨鍦ㄤ紒涓氫俊鎭彲浠ヨ闂紒涓氫俊鎭紒
-2. 鑿滃崟閮ㄥ垎鍔熻兘鍥介檯鍖�
-3. 宸ヤ綔鍒嗘瀽闂嵎鐨勭浉鍏充俊鎭� JAQ闂嵎绫诲瀷
-4. 浼佷笟鐢ㄦ埛浣跨敤娆℃暟璁$畻缁勪欢鏈嶅姟
-5. 鍙傝�冪敤鎴凤細
-    * 涓�绾у垎閿�鍟嗭細test_dis/testtest
-    * 浜岀骇鍒嗛攢鍟嗭細test_dis2/testtest
-    * 浼佷笟鐢ㄦ埛锛歵est_manager/testtest
-* 鎻愪緵鍙傝�冩暟鎹細
-    * 娴嬭瘯鍖咃細JAQ宸ヤ綔鍒嗘瀽闂嵎 
-    * 浜у搧鍖咃細JAQ宸ヤ綔鍒嗘瀽浜у搧
-## **鏇存柊鍐呭**
-* 鐢ㄦ埛绔細鐢ㄦ埛鏀寔鎺ユ敹鐭俊鎴栬�呴偖浠堕摼鎺ュ弬涓庤瘎娴�
-* 鎶ュ憡鐢熸垚锛堥渶瑕佹寜涓夌璇曞嵎绫诲瀷妯℃澘缁х画鏀归�狅級
-* 闂嵎鎻愪氦锛屾敮鎸佷笅娆$户缁綔绛斻��
-* 瀵煎嚭鎶ュ憡骞跺帇缂╂垚zip
-* 鎵归噺瀵煎叆鏂囦欢锛堥渶瑕佹寜涓夌璇曞嵎绫诲瀷妯℃澘缁х画鏀归�狅級
-* 绛斿畬涓嶈兘鍐嶇瓟鐨勯�昏緫
-* 棰樼洰缁村害锛屾寜鐓т笁绉嶈瘯鍗风被鍨嬫敼閫�
-* 闂嵎绫诲瀷锛屾寜鐓�3绉嶉棶鍗风被鍨嬫敼閫�
-* 棰樼洰绫诲瀷锛屾寜鐓�3绉嶉棶鍗风被鍨嬭繘琛屾敼閫�
-* 浜у搧鍖呯被鍨嬶紝鎸夌収3绉嶉棶鍗风被鍨嬭繘琛屾敼閫�
-* 鍥剧墖涓婁紶浼樺寲銆�
-* 澶氳瑷�
-* 鍓嶇妗嗘灦鏀归�狅紝鏀寔3绉嶉棶鍗风被鍨嬮鐩�
-* 鐢ㄦ埛锛屽垎閿�鍟嗭紝浼佷笟鐢ㄦ埛鍩虹淇℃伅璋冩暣浼樺寲
-* 娴嬭瘯鍖呬簩娆′笅杞介�昏緫锛堟湭瀹屽杽锛�
-* 鍒犻櫎鏁忔劅淇℃伅 鐙珛绋嬪簭
-* 鍥炴敹浜烘锛堝洖鏀跺瘑鐮侊級
-* 鍒版湡鍚庨渶瑕佸洖鏀舵鏁扮殑鐙珛绋嬪簭
-* 浼佷笟鐢ㄦ埛娆℃暟娑堣�楄绠楃粍浠堕�昏緫
-* 涓�浜汢UG淇敼
-* 鑿滃崟閮ㄥ垎鍥介檯鍖�
-* 淇绛旈瀹屾垚鐘舵�佸悓姝ワ紝绛旈涓姸鎬佸悓姝�
-
-# **2019-12-28锛氬唴缃姛鑳�**
-
-1. 鐢ㄦ埛绔細鐢ㄦ埛鏀寔鎺ユ敹鐭俊鎴栬�呴偖浠堕摼鎺ュ弬涓庤瘎娴�
-2. 鐢ㄦ埛绔細浜у搧鍖呬汉鍙e淇℃伅鏀堕泦锛屼骇鍝佸寘鍐呭璇勬祴绛旈锛屽苟鎻愪氦璇勬祴
-3. 鍒嗛攢鍟嗙敤鎴枫�佷紒涓氱敤鎴风鐞嗗畬鍠勩�佹敮鎸佸悎鍚岀瓑淇℃伅鐨勬搷浣�
-4. 棰樺簱绠$悊锛氫骇鍝佸寘鍒楄〃澧炲姞棰樼洰鍏崇郴銆佹敮鎸佸垎娈佃缃鐩�佸鍔犻棶鍗风被鍨�
-5. 棰樺簱绠$悊锛氶鐩鍔犻瑙堝姛鑳斤紝鏀寔棰樼洰鍥剧墖涓婁紶
-6. 娴嬭瘯鍖呭垪琛ㄥ鍔犲尯鍩熴�佽绉嶃�佹祴璇曚汉鏁般�佸凡娴嬩汉鏁般�佹湭娴嬩汉鏁板姛鑳�
-7. 娴嬭瘯鍖呮敮鎸佸彂閫侀偖浠躲�佸彂閫佺煭淇°�佹煡鐪嬪彂閫佹姤鍛�
-8. 浜哄彛瀛﹀彉閲忔敮鎸佸璇█璁剧疆
-
-# **2019-12-12锛氬唴缃姛鑳�**
-
-1. 鐢ㄦ埛绠$悊锛氱敤鎴锋槸绯荤粺鎿嶄綔鑰咃紝璇ュ姛鑳戒富瑕佸畬鎴愮郴缁熺敤鎴烽厤缃�傚彲鍒涘缓绯荤粺鐢ㄦ埛銆佸垎閰嶄竴绾у垎閿�鍟嗚鑹层�備竴绾у垎閿�鍟嗗彲鍒涘缓浜岀骇鍒嗛攢鍟嗭紝鍒嗛攢鍟嗗垱寤轰紒涓氱敤鎴枫�傦紙鐢ㄦ埛绠$悊鍖呭惈绠$悊鍛樺垪琛ㄣ�佸垎閿�鍟嗗垪琛ㄣ�佷紒涓氱敤鎴峰垪琛級
-2. 瑙掕壊绠$悊锛氳鑹茶彍鍗曟潈闄愬垎閰嶃�佽缃鑹叉寜鏈烘瀯杩涜鏁版嵁鑼冨洿鏉冮檺鍒掑垎銆�
-3. 瀛楀吀绠$悊锛氬绯荤粺涓粡甯镐娇鐢ㄧ殑涓�浜涜緝涓哄浐瀹氱殑鏁版嵁杩涜缁存姢锛屼富瑕佹湇鍔′簬绯荤粺鐨勫弬鏁扮炕璇戙��
-4. 鎿嶄綔鏃ュ織锛氱郴缁熸甯告搷浣滄棩蹇楄褰曞拰鏌ヨ锛涚郴缁熷紓甯镐俊鎭棩蹇楄褰曞拰鏌ヨ銆�
-5. 鐧诲綍鏃ュ織锛氱郴缁熺櫥褰曟棩蹇楄褰曟煡璇㈠寘鍚櫥褰曞紓甯搞��
-6. 鍦ㄧ嚎鐢ㄦ埛锛氬綋鍓嶇郴缁熶腑娲昏穬鐢ㄦ埛鐘舵�佺洃鎺с��
-7. 瀹氭椂浠诲姟锛氬湪绾匡紙娣诲姞銆佷慨鏀广�佸垹闄�)浠诲姟璋冨害鍖呭惈鎵ц缁撴灉鏃ュ織銆�
-8. 棰樺簱绠$悊锛氫骇鍝佸寘绠$悊锛岄鐩淮搴︼紝棰樼洰鍒楄〃
-9. 娴嬭瘯鍖呯鐞嗭細娴嬭瘯鍖呭垪琛紝鎵归噺瀵煎叆娴嬭瘯浜哄憳鍚嶅崟
-10. 鍙傛暟璁剧疆锛氫紒涓氫俊鎭淮鎶ゅ拰浜哄彛瀛﹀彉閲忓畾涔�
-
-# 闇�姹傚疄鐜版儏鍐�&鎿嶄綔璇存槑
-----------
-## 鎿嶄綔璇存槑锛�
-
- 1. 鍒嗛攢鍟嗘垨鑰呯郴缁熺敤鎴峰垱寤轰骇鍝佸寘锛屽苟瀵煎叆闂嵎棰樼洰
- 2. 浼佷笟鐢ㄦ埛鍒涘缓娴嬭瘯鍖咃紝绠$悊璇勬祴浜哄憳锛屽苟鍙戦�佽瘎娴嬮偖浠舵垨鑰呯煭淇�
- 3. 鐢ㄦ埛閫氳繃閭欢鎴栬�呯煭淇″垎閰嶇殑璇勬祴鍦板潃锛岃繘琛屾祴璇勬搷浣�
- 4. 绛旈瀹屽钩鍙拌褰曠瓟棰樿褰曪紝鍚庣画鍙戦�佹嘲鍥藉洟闃熻绠�
-
-### **缁熷垎涓�5绫荤敤鎴凤細锛堝钩鍙扮鐞嗗憳銆佷竴绾у垎閿�鍟嗐�佷簩绾у垎閿�鍟嗐�佷紒涓氱敤鎴枫�佹祴璇勭敤鎴凤級**
-
- 1. 骞冲彴鐢ㄦ埛锛氬彲浠ュ垎閰嶆潈闄愶紝鎷ユ湁骞冲彴绠$悊鏉冮檺锛屽彲鍒涘缓涓�绾у垎閿�鍟嗭紝绠$悊浜у搧鍖呭拰棰樼洰
- 2. 涓�绾у垎閿�鍟嗭細鑳藉鍒涘缓浜岀骇鍒嗛攢鍟嗭紝骞惰兘鏌ョ湅浜岀骇鍒嗛攢鍟嗕笅鐨勪紒涓氱敤鎴蜂俊鎭�
- 3. 浜岀骇鍒嗛攢鍟嗭細鍙互鍒涘缓浼佷笟鐢ㄦ埛锛屽苟绠$悊浼佷笟鐢ㄦ埛鐨勪娇鐢ㄦ鏁帮紝鎶ュ憡涓嬭浇瀹℃壒
- 4. 浼佷笟鐢ㄦ埛锛氬彲浠ュ垱寤烘祴璇曞寘锛岄�夋嫨浜у搧鍖咃紝骞剁鐞嗚瘎娴嬬敤鎴�
- 5. 璇勬祴鐢ㄦ埛锛氶�氳繃鎺ユ敹閭欢鎴栬�呯煭淇″畬鎴愰棶鍗锋祴璇�
-
-## 銆婄敤鎴风銆�
-瀹屾垚娴嬭瘎鏈嶅姟绯荤粺鐨勭敤鎴风搴旂敤锛孒5鏂瑰紡鏀寔鍦ㄦ祻瑙堝櫒锛堝钩鏉裤�佹墜鏈烘垨PC锛変腑鎵撳紑锛屽畬鎴愯皟鏌ラ棶鍗风殑濉啓銆�
-
- 1. 骞冲彴涓嬪彂閭�璇锋祴璇勯偖浠舵垨鑰呮祴璇勭煭淇$粰鐩爣鐢ㄦ埛
-![鍙戦�侀偖浠禲[1]
-![鍙戦�佺煭淇[2]
- 2. 鐐瑰嚮璇勬祴杩炴帴
- 瀹屾垚浜哄彛瀛︿俊鎭~鍐欙紝灞曠ず闂嵎鎸囧璇�
-鐢ㄦ埛閫氳繃URL杩涘叆銆婂~鍐欒皟鏌ュ熀鏈祫鏂欑晫闈€��->銆婂睍绀虹瓟棰樻彁绀轰俊鎭晫闈€��-> 寮�濮嬬瓟棰樸�佸睍绀恒�婇鐩晫闈€��
- 3. 瀹屾垚璇勬祴锛岀粨鏋滃湪骞冲彴娴嬭褰曘�傝瘎娴嬫姤鍛婁細閫氳繃閭欢鍙戦�佺粰璇勬祴浜哄憳銆�
-
-----------
-
-## 銆婁紒涓氱銆�
-### 浼佷笟鍚庡彴绠$悊 浼佷笟淇℃伅閰嶇疆
-#### 涓�銆佷紒涓氱敤鎴风櫥褰�
-
-- 鐢ㄦ埛鍚嶃�佸瘑鐮併�侀獙璇佺爜鐧诲綍妯″紡
-- 璁板綍鐧诲綍鏃ュ織淇℃伅
-
-#### 浜屻�佸弬鏁拌缃�
-
-- 浼佷笟淇℃伅璁剧疆锛堝熀鏈俊鎭彉鏇达級浼佷笟鍚嶇О銆佸彲鐢ㄦ祴璇曚汉娆℃暟
-![姝ゅ杈撳叆鍥剧墖鐨勬弿杩癩[3]
-- 鍩烘湰璁剧疆锛堜紒涓氱敤鎴蜂俊鎭級锛欻R閭锛屾祴璇曡�呮槸鍚︽敹鎶ュ憡锛屽彲鑷畾涔夐偖浠跺唴瀹癸紱鎶ュ憡绫诲瀷锛岃瑷�鐗堟湰銆�
-![姝ゅ杈撳叆鍥剧墖鐨勬弿杩癩[4]
-- 浜哄彛瀛︿俊鎭缃�
-![姝ゅ杈撳叆鍥剧墖鐨勬弿杩癩[5]
-
-#### 涓夈�佹祴璇曞寘
-- 娴嬭瘯鍖呴厤缃強绠$悊锛屾祴璇曚汉鍛樺鍏ョ鐞嗭紝娴嬭瘯鍖呭垪琛紝鎵归噺瀵煎嚭娴嬭瘯鎶ュ憡锛屽彂閫佹祴璇曢個璇凤紝鏌ョ湅娴嬭瘯浜哄憳淇℃伅锛岀敵璇蜂笅杞界浜屼唤娴嬭瘯鎶ュ憡锛屽垱寤烘祴璇曞寘锛屾壒閲忓鍏ユ祴璇曚汉鍛樺悕鍗曪紝鎵嬪姩娣诲姞娴嬭瘯浜哄憳鍚嶅崟锛屼慨鏀规祴璇曟姤鍛婇�氱煡閰嶇疆锛屾帶鍒舵祴璇曞寘鐘舵�侊紝鍥炴敹浜烘锛堝洖鏀跺瘑鐮侊級
-![姝ゅ杈撳叆鍥剧墖鐨勬弿杩癩[6]
-
-- 璇勬祴浜哄憳鍒楄〃
-![姝ゅ杈撳叆鍥剧墖鐨勬弿杩癩[7]
-
-- 閭�璇烽偖浠�
-![姝ゅ杈撳叆鍥剧墖鐨勬弿杩癩[8]
-- 閭�璇风煭淇�
-![姝ゅ杈撳叆鍥剧墖鐨勬弿杩癩[9]
-- 閭�璇锋姤鍛�
-![姝ゅ杈撳叆鍥剧墖鐨勬弿杩癩[10]
-
-#### 鍥涖�佹暟鎹垎鏋�
-
-- 瀵煎嚭娴嬭瘯鍖呮暟鎹紙TPI浼氭彁渚涙ā鏉匡級
-![姝ゅ杈撳叆鍥剧墖鐨勬弿杩癩[11]
-
-#### 浜斻�佸畨鍏ㄧ瓥鐣�
-
-- 鐙珛绋嬪簭鏂瑰紡瀹氭椂鍒犻櫎杩囨湡鐢ㄦ埛鏁忔劅淇℃伅
-
-#### 鍏�佹悳绱�
-
-- 鎼滅储鍔熻兘
-
-## **銆婂垎閿�鍟嗐��**
-- 鍒嗛攢鍟嗙鐞嗭細鍙互鍒涘缓浜岀骇鍒嗛攢鍟嗭紝鏌ョ湅褰掑睘浼佷笟淇℃伅鍒楄〃
-![姝ゅ杈撳叆鍥剧墖鐨勬弿杩癩[12]
-- 鍒嗛攢鍟嗕俊鎭細澧炲姞浣跨敤浜烘锛屼紒涓氭姤鍛婁笅杞芥巿鏉冿紝鏇村彉浼佷笟淇℃伅锛屽垎閿�鍟嗗彲浠ュ垱寤轰紒涓氱敤鎴�
-![姝ゅ杈撳叆鍥剧墖鐨勬弿杩癩[13]
-
-## **銆婂钩鍙扮鐞嗙銆�**
-
-### 涓�銆佺敤鎴风櫥褰曟ā鍧�
-1銆佹敮鎸侀�氳繃URL鐨勬柟寮忔帹閫佺粰鐩爣鐢ㄦ埛锛堥偖浠跺拰鐭俊鏂瑰紡锛�,鐢ㄦ埛鐐瑰嚮閾炬帴鐧诲綍锛屽垎閰嶇粰鐢ㄦ埛鐨勯摼鎺ュ湴鍧�鍙兘鏈変竴涓湪绾匡紝涓旀湁鏈夋晥鏈熸帶鍒躲�傞噸澶嶈闂垯浠ユ渶鏂扮殑璁块棶鐢熸晥锛屽叾浠朣ession鍋氫笅绾垮鐞嗐��
-2銆佺櫥褰曟棩蹇楄褰曘��
-#### 绠$悊鍛樺垪琛細骞冲彴鐢ㄦ埛
-![绠$悊鍛樺垪琛╙[14]
-
-### 浜屻�侀搴撶鐞�
-#### 鐣岄潰閫昏緫娴佺▼鎻忚堪锛�
- - 1銆佷骇鍝佸寘鍒楄〃
- - 2銆侀鐩淮搴�
- ![棰樼洰缁村害][15]
- - 3銆侀棶鍗风被鍨�
- ![闂嵎绫诲瀷][16]
- - 4銆侀鐩垪琛�
- ![棰樼洰鍒楄〃][17]
- - 5銆佺郴缁熺鐞�
- 瑙掕壊绠$悊锛屾潈闄愬垎閰嶏紝澶氳瑷�閰嶇疆
-![瑙掕壊鏉冮檺][18]
-
-- 鏆傛棤
-# 骞冲彴浣撻獙鐢ㄦ埛
->  test/testtest
-
-# 婕旂ず鍦板潃锛氬弬鑰冮儴缃茶鏄�
-
-鏂囨。鍦板潃锛歨ttp://139.199.11.114/docs
-
-# **閮ㄧ讲璇存槑**
-**1銆佷緷璧栫幆澧冭姹�**
-jdk1.8
-mysql 5.7浠ヤ笂锛屽缓璁甿ysql8.0
-node.js鐜
-nginx
-
-### 鏁版嵁搴撹剼鏈�
-```
-璇疯闂繙绋嬫湇鍔″櫒鑾峰彇锛歨ttp://139.199.11.114/images/ots-sand.sql
-```
-
-### 閮ㄧ讲绋嬪簭璇存槑
-```
-璇疯闂繙绋嬫湇鍔″櫒鑾峰彇绋嬪簭鍖咃細http://139.199.11.114/images/ots-bin.zip
-鐢ㄦ埛绔▼搴忓寘锛�
-```
-
-```
-1銆佽В鍘嬬▼搴忓寘锛屼慨鏀筩onf鐩綍涓嬮厤缃枃浠惰繛鎺ユ暟鎹簱
-鍦ㄩ厤缃枃浠禷pplication-druid.yml涓厤缃暟鎹簱杩炴帴鍦板潃锛�
-url: jdbc:mysql://ip:port/ots-sand?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-username: 鐢ㄦ埛鍚�
-password: 瀵嗙爜
-2銆佹墽琛宐in鐩綍涓媏ss.sh 鍚姩椤圭洰
-
-3銆佸悗鍙拌闂湴鍧�锛歨ttp://localhost:8090
-```
-
-# 婕旂ず鍥�
-
-<table>
-    <tr>
-        <td><img src="http://139.199.11.114/images/20191113001.png"/></td>
-        <td><img src="http://139.199.11.114/images/20191113002.png"/></td>
-    </tr>
-</table>
-
-
-  [1]: http://139.199.11.114/images/%E5%8F%91%E9%80%81%E9%82%AE%E4%BB%B6.png
-  [2]: http://139.199.11.114/images/%E5%8F%91%E9%80%81%E7%9F%AD%E4%BF%A1.jpg
-  [3]: http://139.199.11.114/images/%E4%BC%81%E4%B8%9A%E4%BF%A1%E6%81%AF.jpg
-  [4]: http://139.199.11.114/images/%E4%BC%81%E4%B8%9A%E7%94%A8%E6%88%B7%E4%BF%A1%E6%81%AF.jpg
-  [5]: http://139.199.11.114/images/%E4%BA%BA%E5%8F%A3%E5%AD%A6%E5%8F%98%E9%87%8F.jpg
-  [6]: http://139.199.11.114/images/%E6%B5%8B%E8%AF%95%E5%8C%85%E5%88%97%E8%A1%A8.jpg
-  [7]: http://139.199.11.114/images/%E8%AF%84%E6%B5%8B%E4%BA%BA%E5%91%98%E5%88%97%E8%A1%A8.jpg
-  [8]: http://139.199.11.114/images/%E9%82%80%E8%AF%B7%E9%82%AE%E4%BB%B6.jpg
-  [9]: http://139.199.11.114/images/%E9%82%80%E8%AF%B7%E7%9F%AD%E4%BF%A1.jpg
-  [10]: http://139.199.11.114/images/%E9%82%80%E8%AF%B7%E5%8F%91%E9%80%81%E6%8A%A5%E5%91%8A.jpg
-  [11]: http://139.199.11.114/images/%E9%97%AE%E5%8D%B7%E7%AD%94%E9%A2%98%E7%BB%93%E6%9E%9C.png
-  [12]: http://139.199.11.114/images/%E5%88%86%E9%94%80%E5%95%86%E5%88%97%E8%A1%A8.jpg
-  [13]: http://139.199.11.114/images/%E5%88%86%E9%94%80%E5%95%86%E4%BF%A1%E6%81%AF.jpg
-  [14]: http://139.199.11.114/images/%E7%AE%A1%E7%90%86%E5%91%98%E5%88%97%E8%A1%A8.jpg
-  [15]: http://139.199.11.114/images/%E9%A2%98%E7%9B%AE%E7%BB%B4%E5%BA%A6.jpg
-  [16]: http://139.199.11.114/images/%E9%97%AE%E5%8D%B7%E7%B1%BB%E5%9E%8B.jpg
-  [17]: http://139.199.11.114/images/%E9%A2%98%E7%9B%AE%E5%88%97%E8%A1%A8.jpg
-  [18]: http://139.199.11.114/images/%E8%A7%92%E8%89%B2%E6%9D%83%E9%99%90.jpg
\ No newline at end of file
diff --git a/ots-docs/index.html b/ots-docs/index.html
deleted file mode 100644
index f48a914..0000000
--- a/ots-docs/index.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-  <meta charset="UTF-8">
-  <title>Document</title>
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
-  <meta name="description" content="Description">
-  <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
-  <link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css">
-</head>
-<body>
-  <div id="app"></div>
-  <script>
-    window.$docsify = {
-      name: '',
-      repo: ''
-    }
-  </script>
-  <script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
-</body>
-</html>
diff --git "a/ots-docs/\345\211\215\345\220\216\347\253\257\345\233\275\351\231\205\345\214\226-\351\205\215\347\275\256-20200123.xls" "b/ots-docs/\345\211\215\345\220\216\347\253\257\345\233\275\351\231\205\345\214\226-\351\205\215\347\275\256-20200123.xls"
deleted file mode 100644
index 3188c61..0000000
--- "a/ots-docs/\345\211\215\345\220\216\347\253\257\345\233\275\351\231\205\345\214\226-\351\205\215\347\275\256-20200123.xls"
+++ /dev/null
Binary files differ
diff --git a/src/main/assembly/assembly.xml b/src/main/assembly/assembly.xml
deleted file mode 100644
index 2e3c23e..0000000
--- a/src/main/assembly/assembly.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<assembly
-        xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
-        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-        xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
-
-    <id>bin</id>
-    <formats>
-        <format>zip</format>
-    </formats>
-    <includeBaseDirectory>false</includeBaseDirectory>
-    <fileSets>
-        <fileSet>
-            <directory>src/main/scripts</directory>
-            <outputDirectory>/bin</outputDirectory>
-            <lineEnding>unix</lineEnding>
-            <fileMode>0755</fileMode>
-            <includes>
-                <include>*.sh</include>
-            </includes>
-        </fileSet>
-        <fileSet>
-            <directory>target/</directory>
-            <outputDirectory>/main</outputDirectory>
-            <includes>
-                <include>*.jar</include>
-            </includes>
-        </fileSet>
-        <fileSet>
-            <directory>target/classes</directory>
-            <outputDirectory>/conf</outputDirectory>
-            <includes>
-                <include>*.xml</include>
-                <include>*.conf</include>
-                <include>*.properties</include>
-                <include>*.yml</include>
-                <include>*.txt</include>
-            </includes>
-        </fileSet>
-    </fileSets>
-</assembly>
\ No newline at end of file
diff --git a/src/main/resources/vm/html/add.html.vm b/src/main/resources/vm/html/add.html.vm
deleted file mode 100644
index e6e8a98..0000000
--- a/src/main/resources/vm/html/add.html.vm
+++ /dev/null
@@ -1,166 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh" xmlns:th="http://www.thymeleaf.org">
-<head>
-    <th:block th:include="include :: header('鏂板${functionName}')"/>
-    #foreach($column in $columns)
-        #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "datetime")
-            <th:block th:include="include :: datetimepicker-css"/>
-            #break
-        #end
-    #end
-</head>
-<body class="white-bg">
-<div class="wrapper wrapper-content animated fadeInRight ibox-content">
-    <form class="form-horizontal m" id="form-${businessName}-add">
-        #foreach($column in $columns)
-            #set($field=$column.javaField)
-            #if($column.insert && !$column.superColumn && !$column.pk)
-                #set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-                #if($parentheseIndex != -1)
-                    #set($comment=$column.columnComment.substring(0, $parentheseIndex))
-                #else
-                    #set($comment=$column.columnComment)
-                #end
-                #set($dictType=$column.dictType)
-                #if("" != $treeParentCode && $column.javaField == $treeParentCode)
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">${comment}锛�</label>
-                        <div class="col-sm-8">
-                            <div class="input-group">
-                                #set($BusinessName=$businessName.substring(0,1).toUpperCase() + ${businessName.substring(1)})
-                                #set($deptId = "${className}?.deptId")
-                                #set($deptName = "${className}?.deptName")
-                                <input id="treeId" name="${treeParentCode}" type="hidden" th:value="${${deptId}}"/>
-                                <input class="form-control" type="text" onclick="select${BusinessName}Tree()"
-                                       id="treeName" readonly="true" th:value="${${deptName}}"#if($column.required)
-                                       required#end>
-                                <span class="input-group-addon"><i class="fa fa-search"></i></span>
-                            </div>
-                        </div>
-                    </div>
-                #elseif($column.htmlType == "input")
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">${comment}锛�</label>
-                        <div class="col-sm-8">
-                            <input name="${field}" class="form-control" type="text"#if($column.required) required#end>
-                        </div>
-                    </div>
-                #elseif($column.htmlType == "select" && "" != $dictType)
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">${comment}锛�</label>
-                        <div class="col-sm-8">
-                            <select name="${field}" class="form-control m-b"
-                                    th:with="type=${@dict.getType('${dictType}')}"#if($column.required) required#end>
-                                <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
-                                        th:value="${dict.dictValue}"></option>
-                            </select>
-                        </div>
-                    </div>
-                #elseif($column.htmlType == "select" && $dictType)
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">${comment}锛�</label>
-                        <div class="col-sm-8">
-                            <select name="${field}" class="form-control m-b"#if($column.required) required#end>
-                                <option value="">鎵�鏈�</option>
-                            </select>
-                            <span class="help-block m-b-none"><i class="fa fa-info-circle"></i> 浠g爜鐢熸垚璇烽�夋嫨瀛楀吀灞炴��</span>
-                        </div>
-                    </div>
-                #elseif($column.htmlType == "radio" && "" != $dictType)
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">${comment}锛�</label>
-                        <div class="col-sm-8">
-                            <div class="radio-box" th:each="dict : ${@dict.getType('${dictType}')}">
-                                <input type="radio" th:id="${dict.dictCode}" name="${field}"
-                                       th:value="${dict.dictValue}" th:checked="${dict.default}"#if($column.required)
-                                       required#end>
-                                <label th:for="${dict.dictCode}" th:text="${dict.dictLabel}"></label>
-                            </div>
-                        </div>
-                    </div>
-                #elseif($column.htmlType == "radio" && $dictType)
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">${comment}锛�</label>
-                        <div class="col-sm-8">
-                            <div class="radio-box">
-                                <input type="radio" name="${field}" value=""#if($column.required) required#end>
-                                <label th:for="${field}" th:text="鏈煡"></label>
-                            </div>
-                            <span class="help-block m-b-none"><i class="fa fa-info-circle"></i> 浠g爜鐢熸垚璇烽�夋嫨瀛楀吀灞炴��</span>
-                        </div>
-                    </div>
-                #elseif($column.htmlType == "datetime")
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">${comment}锛�</label>
-                        <div class="col-sm-8">
-                            <div class="input-group date">
-                                <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
-                                <input name="${field}" class="form-control" placeholder="yyyy-MM-dd"
-                                       type="text"#if($column.required) required#end>
-                            </div>
-                        </div>
-                    </div>
-                #elseif($column.htmlType == "textarea")
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">${comment}锛�</label>
-                        <div class="col-sm-8">
-                            <textarea name="${field}" class="form-control"#if($column.required) required#end></textarea>
-                        </div>
-                    </div>
-                #end
-            #end
-        #end
-    </form>
-</div>
-<th:block th:include="include :: footer"/>
-    #foreach($column in $columns)
-        #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "datetime")
-        <th:block th:include="include :: datetimepicker-js"/>
-            #break
-        #end
-    #end
-<script type="text/javascript">
-    var prefix = ctx + "${moduleName}/${businessName}"
-    $("#form-${businessName}-add").validate({
-        focusCleanup: true
-    });
-
-    function submitHandler() {
-        if ($.validate.form()) {
-            $.operate.save(prefix + "/add", $('#form-${businessName}-add').serialize());
-        }
-    }
-        #foreach($column in $columns)
-            #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "datetime")
-
-            $("input[name='$column.javaField']").datetimepicker({
-                format: "yyyy-mm-dd",
-                minView: "month",
-                autoclose: true
-            });
-                #break
-            #end
-        #end
-        #if($table.tree)
-
-        /*${functionName}-鏂板-閫夋嫨鐖堕儴闂ㄦ爲*/
-        function select${BusinessName}Tree() {
-            var options = {
-                title: '${functionName}閫夋嫨',
-                width: "380",
-                url: prefix + "/select${BusinessName}Tree/" + $("#treeId").val(),
-                callBack: doSubmit
-            };
-            $.modal.openOptions(options);
-        }
-
-        function doSubmit(index, layero) {
-            var body = layer.getChildFrame('body', index);
-            $("#treeId").val(body.find('#treeId').val());
-            $("#treeName").val(body.find('#treeName').val());
-            layer.close(index);
-        }
-        #end
-</script>
-</body>
-</html>
\ No newline at end of file
diff --git a/src/main/resources/vm/html/edit.html.vm b/src/main/resources/vm/html/edit.html.vm
deleted file mode 100644
index b886f73..0000000
--- a/src/main/resources/vm/html/edit.html.vm
+++ /dev/null
@@ -1,160 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
-<head>
-    <th:block th:include="include :: header('淇敼${functionName}')" />
-#foreach($column in $columns)
-#if($column.edit && !$column.superColumn && !$column.pk && $column.htmlType == "datetime")
-    <th:block th:include="include :: datetimepicker-css" />
-#break
-#end
-#end
-</head>
-<body class="white-bg">
-    <div class="wrapper wrapper-content animated fadeInRight ibox-content">
-        <form class="form-horizontal m" id="form-${businessName}-edit" th:object="${${className}}">
-            <input name="${pkColumn.javaField}" th:field="*{${pkColumn.javaField}}" type="hidden">
-#foreach($column in $columns)
-#if($column.edit && !$column.superColumn && !$column.pk)
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#set($field=$column.javaField)
-#set($dictType=$column.dictType)
-#if("" != $treeParentCode && $column.javaField == $treeParentCode)
-            <div class="form-group">    
-                <label class="col-sm-3 control-label">${comment}锛�</label>
-                <div class="col-sm-8">
-                    <div class="input-group">
-#set($BusinessName=$businessName.substring(0,1).toUpperCase() + ${businessName.substring(1)})
-#set($deptId = "${className}?.deptId")
-#set($deptName = "${className}?.deptName")
-                        <input id="treeId" name="${treeParentCode}" type="hidden" th:field="*{${treeParentCode}}" />
-                        <input class="form-control" type="text" onclick="select${BusinessName}Tree()" id="treeName" readonly="true" th:field="*{parentName}"#if($column.required) required#end>
-                        <span class="input-group-addon"><i class="fa fa-search"></i></span>
-                    </div>
-                </div>
-            </div>
-#elseif($column.htmlType == "input")
-            <div class="form-group">    
-                <label class="col-sm-3 control-label">${comment}锛�</label>
-                <div class="col-sm-8">
-                    <input name="${field}" th:field="*{${field}}" class="form-control" type="text"#if($column.required) required#end>
-                </div>
-            </div>
-#elseif($column.htmlType == "select" && "" != $dictType)
-            <div class="form-group">    
-                <label class="col-sm-3 control-label">${comment}锛�</label>
-                <div class="col-sm-8">
-                    <select name="${field}" class="form-control m-b" th:with="type=${@dict.getType('${dictType}')}"#if($column.required) required#end>
-                        <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{${field}}"></option>
-                    </select>
-                </div>
-            </div>
-#elseif($column.htmlType == "select" && $dictType)
-            <div class="form-group">    
-                <label class="col-sm-3 control-label">${comment}锛�</label>
-                <div class="col-sm-8">
-                    <select name="${field}" class="form-control m-b"#if($column.required) required#end>
-                        <option value="">鎵�鏈�</option>
-                    </select>
-                    <span class="help-block m-b-none"><i class="fa fa-info-circle"></i> 浠g爜鐢熸垚璇烽�夋嫨瀛楀吀灞炴��</span>
-                </div>
-            </div>
-#elseif($column.htmlType == "radio" && "" != $dictType)
-            <div class="form-group">    
-                <label class="col-sm-3 control-label">${comment}锛�</label>
-                <div class="col-sm-8">
-                    <div class="radio-box" th:each="dict : ${@dict.getType('${dictType}')}">
-                        <input type="radio" th:id="${dict.dictCode}" name="${field}" th:value="${dict.dictValue}" th:field="*{${field}}"#if($column.required) required#end>
-                        <label th:for="${dict.dictCode}" th:text="${dict.dictLabel}"></label>
-                    </div>
-                </div>
-            </div>
-#elseif($column.htmlType == "radio" && $dictType)
-            <div class="form-group">    
-                <label class="col-sm-3 control-label">${comment}锛�</label>
-                <div class="col-sm-8">
-                    <div class="radio-box">
-                        <input type="radio" name="${field}" value=""#if($column.required) required#end>
-                        <label th:for="${field}" th:text="鏈煡"></label>
-                    </div>
-                    <span class="help-block m-b-none"><i class="fa fa-info-circle"></i> 浠g爜鐢熸垚璇烽�夋嫨瀛楀吀灞炴��</span>
-                </div>
-            </div>
-#elseif($column.htmlType == "datetime")
-            <div class="form-group">    
-                <label class="col-sm-3 control-label">${comment}锛�</label>
-                <div class="col-sm-8">
-                    <div class="input-group date">
-                        <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
-                        <input name="${field}" th:value="${#dates.format(${className}.${field}, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text"#if($column.required) required#end>
-                    </div>
-                </div>
-            </div>
-#elseif($column.htmlType == "textarea")
-            <div class="form-group">
-                <label class="col-sm-3 control-label">${comment}锛�</label>
-                <div class="col-sm-8">
-                    <textarea name="${field}" class="form-control"#if($column.required) required#end>[[*{${field}}]]</textarea>
-                </div>
-            </div>
-#end
-#end
-#end
-        </form>
-    </div>
-    <th:block th:include="include :: footer" />
-#foreach($column in $columns)
-#if($column.edit && !$column.superColumn && !$column.pk && $column.htmlType == "datetime")
-    <th:block th:include="include :: datetimepicker-js" />
-#break
-#end
-#end
-    <script type="text/javascript">
-        var prefix = ctx + "${moduleName}/${businessName}";
-        $("#form-${businessName}-edit").validate({
-            focusCleanup: true
-        });
-
-        function submitHandler() {
-            if ($.validate.form()) {
-                $.operate.save(prefix + "/edit", $('#form-${businessName}-edit').serialize());
-            }
-        }
-#foreach($column in $columns)
-#if($column.edit && !$column.superColumn && !$column.pk && $column.htmlType == "datetime")
-
-        $("input[name='$column.javaField']").datetimepicker({
-            format: "yyyy-mm-dd",
-            minView: "month",
-            autoclose: true
-        });
-#break
-#end
-#end
-#if($table.tree)
-
-        /*${functionName}-鏂板-閫夋嫨鐖堕儴闂ㄦ爲*/
-        function select${BusinessName}Tree() {
-            var options = {
-                title: '${functionName}閫夋嫨',
-                width: "380",
-                url: prefix + "/select${BusinessName}Tree/" + $("#treeId").val(),
-                callBack: doSubmit
-            };
-            $.modal.openOptions(options);
-        }
-
-        function doSubmit(index, layero){
-            var body = layer.getChildFrame('body', index);
-               $("#treeId").val(body.find('#treeId').val());
-               $("#treeName").val(body.find('#treeName').val());
-               layer.close(index);
-        }
-#end
-    </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/src/main/resources/vm/html/list-tree.html.vm b/src/main/resources/vm/html/list-tree.html.vm
deleted file mode 100644
index 4b854c2..0000000
--- a/src/main/resources/vm/html/list-tree.html.vm
+++ /dev/null
@@ -1,150 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
-<head>
-    <th:block th:include="include :: header('${functionName}鍒楄〃')" />
-</head>
-<body class="gray-bg">
-     <div class="container-div">
-        <div class="row">
-            <div class="col-sm-12 search-collapse">
-                <form id="formId">
-                    <div class="select-list">
-                        <ul>
-#foreach($column in $columns)
-#if($column.query)
-#set($dictType=$column.dictType)
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else  
-#set($comment=$column.columnComment)
-#end  
-#if($column.htmlType == "input")
-                            <li>
-                                <p>${comment}锛�</p>
-                                <input type="text" name="${column.javaField}"/>
-                            </li>
-#elseif($column.htmlType == "select" || $column.htmlType == "radio" && "" != $dictType)
-                            <li>
-                                <p>${comment}锛�</p>
-                                <select name="${column.javaField}" th:with="type=${@dict.getType('${dictType}')}">
-                                    <option value="">鎵�鏈�</option>
-                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
-                                </select>
-                            </li>
-#elseif($column.htmlType == "select" || $column.htmlType == "radio" && $dictType)
-                            <li>
-                                <p>${comment}锛�</p>
-                                <select name="${column.javaField}">
-                                    <option value="">鎵�鏈�</option>
-                                </select>
-                            </li>
-#elseif($column.htmlType == "datetime")
-                            <li class="select-time">
-                                <p>${comment}锛�</p>
-                                <input type="text" class="time-input" id="startTime" placeholder="寮�濮嬫椂闂�" name="params[begin${AttrName}]"/>
-                                <span>-</span>
-                                <input type="text" class="time-input" id="endTime" placeholder="缁撴潫鏃堕棿" name="params[end${AttrName}]"/>
-                            </li>                
-#end
-#end
-#end
-                            <li>
-                                <a class="btn btn-primary btn-rounded btn-sm" onclick="$.treeTable.search()"><i class="fa fa-search"></i>&nbsp;鎼滅储</a>
-                                <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;閲嶇疆</a>
-                            </li>
-                        </ul>
-                    </div>
-                </form>
-            </div>
-
-            <div class="btn-group-sm" id="toolbar" role="group">
-                <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="${permissionPrefix}:add">
-                    <i class="fa fa-plus"></i> 鏂板
-                </a>
-                <a class="btn btn-primary" onclick="$.operate.edit()" shiro:hasPermission="${permissionPrefix}:edit">
-                    <i class="fa fa-edit"></i> 淇敼
-                </a>
-                <a class="btn btn-info" id="expandAllBtn">
-                    <i class="fa fa-exchange"></i> 灞曞紑/鎶樺彔
-                </a>
-            </div>
-            <div class="col-sm-12 select-table table-striped">
-                <table id="bootstrap-tree-table"></table>
-            </div>
-        </div>
-    </div>
-    <th:block th:include="include :: footer" />
-    <script th:inline="javascript">
-        var addFlag = [[${@permission.hasPermi('${permissionPrefix}:add')}]];
-        var editFlag = [[${@permission.hasPermi('${permissionPrefix}:edit')}]];
-        var removeFlag = [[${@permission.hasPermi('${permissionPrefix}:remove')}]];
-#foreach($column in $columns)
-#if(${column.dictType} != '')
-        var ${column.javaField}Datas = [[${@dict.getType('${column.dictType}')}]];
-#end
-#end
-        var prefix = ctx + "${moduleName}/${businessName}";
-
-        $(function() {
-            var options = {
-                code: "${treeCode}",
-                parentCode: "${treeParentCode}",
-                expandColumn: "${expandColumn}",
-                uniqueId: "${pkColumn.javaField}",
-                url: prefix + "/list",
-                createUrl: prefix + "/add/{id}",
-                updateUrl: prefix + "/edit/{id}",
-                removeUrl: prefix + "/remove/{id}",
-                exportUrl: prefix + "/export",
-                modalName: "${functionName}",
-                columns: [{
-                    field: 'selectItem', 
-                    radio: true
-                },
-#foreach($column in $columns)
-#set($dictType=$column.dictType)
-#set($javaField=$column.javaField)
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if($column.pk)
-#elseif($column.list && "" != $dictType)
-                {
-                    field : '${javaField}', 
-                    title : '${comment}',
-                    align: 'left',
-                    formatter: function(value, row, index) {
-                        return $.table.selectDictLabel(${javaField}Datas, value);
-                    }
-                },
-#elseif($column.list && "" != $javaField)
-                {
-                    field : '${javaField}', 
-                    title : '${comment}',
-                    align: 'left'
-                },
-#end                
-#end
-                {
-                    title: '鎿嶄綔',
-                    align: 'center',
-                    align: 'left',
-                    formatter: function(value, row, index) {
-                        var actions = [];
-                        actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.${pkColumn.javaField} + '\')"><i class="fa fa-edit"></i>缂栬緫</a> ');
-                        actions.push('<a class="btn btn-info  btn-xs ' + addFlag + '" href="javascript:void(0)" onclick="$.operate.add(\'' + row.${pkColumn.javaField} + '\')"><i class="fa fa-plus"></i>鏂板</a> ');
-                        actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.${pkColumn.javaField} + '\')"><i class="fa fa-remove"></i>鍒犻櫎</a>');
-                        return actions.join('');
-                    }
-                }]
-            };
-            $.treeTable.init(options);
-        });
-    </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/src/main/resources/vm/html/list.html.vm b/src/main/resources/vm/html/list.html.vm
deleted file mode 100644
index 8069d2f..0000000
--- a/src/main/resources/vm/html/list.html.vm
+++ /dev/null
@@ -1,148 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
-<head>
-    <th:block th:include="include :: header('${functionName}鍒楄〃')" />
-</head>
-<body class="gray-bg">
-     <div class="container-div">
-        <div class="row">
-            <div class="col-sm-12 search-collapse">
-                <form id="formId">
-                    <div class="select-list">
-                        <ul>
-#foreach($column in $columns)
-#if($column.query)
-#set($dictType=$column.dictType)
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else  
-#set($comment=$column.columnComment)
-#end  
-#if($column.htmlType == "input")
-                            <li>
-                                <p>${comment}锛�</p>
-                                <input type="text" name="${column.javaField}"/>
-                            </li>
-#elseif($column.htmlType == "select" || $column.htmlType == "radio" && "" != $dictType)
-                            <li>
-                                <p>${comment}锛�</p>
-                                <select name="${column.javaField}" th:with="type=${@dict.getType('${dictType}')}">
-                                    <option value="">鎵�鏈�</option>
-                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
-                                </select>
-                            </li>
-#elseif($column.htmlType == "select" || $column.htmlType == "radio" && $dictType)
-                            <li>
-                                <p>${comment}锛�</p>
-                                <select name="${column.javaField}">
-                                    <option value="">鎵�鏈�</option>
-                                </select>
-                            </li>
-#elseif($column.htmlType == "datetime")
-                            <li class="select-time">
-                                <p>${comment}锛�</p>
-                                <input type="text" class="time-input" id="startTime" placeholder="寮�濮嬫椂闂�" name="params[begin${AttrName}]"/>
-                                <span>-</span>
-                                <input type="text" class="time-input" id="endTime" placeholder="缁撴潫鏃堕棿" name="params[end${AttrName}]"/>
-                            </li>
-#end
-#end
-#end
-                            <li>
-                                <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;鎼滅储</a>
-                                <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;閲嶇疆</a>
-                            </li>
-                        </ul>
-                    </div>
-                </form>
-            </div>
-
-            <div class="btn-group-sm" id="toolbar" role="group">
-                <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="${permissionPrefix}:add">
-                    <i class="fa fa-plus"></i> 娣诲姞
-                </a>
-                <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="${permissionPrefix}:edit">
-                    <i class="fa fa-edit"></i> 淇敼
-                </a>
-                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="${permissionPrefix}:remove">
-                    <i class="fa fa-remove"></i> 鍒犻櫎
-                </a>
-                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="${permissionPrefix}:export">
-                    <i class="fa fa-download"></i> 瀵煎嚭
-                 </a>
-            </div>
-            <div class="col-sm-12 select-table table-striped">
-                <table id="bootstrap-table" data-mobile-responsive="true"></table>
-            </div>
-        </div>
-    </div>
-    <th:block th:include="include :: footer" />
-    <script th:inline="javascript">
-        var editFlag = [[${@permission.hasPermi('${permissionPrefix}:edit')}]];
-        var removeFlag = [[${@permission.hasPermi('${permissionPrefix}:remove')}]];
-#foreach($column in $columns)
-#if(${column.dictType} != '')
-        var ${column.javaField}Datas = [[${@dict.getType('${column.dictType}')}]];
-#end
-#end
-        var prefix = ctx + "${moduleName}/${businessName}";
-
-        $(function() {
-            var options = {
-                url: prefix + "/list",
-                createUrl: prefix + "/add",
-                updateUrl: prefix + "/edit/{id}",
-                removeUrl: prefix + "/remove",
-                exportUrl: prefix + "/export",
-                modalName: "${functionName}",
-                columns: [{
-                    checkbox: true
-                },
-#foreach($column in $columns)
-#set($dictType=$column.dictType)
-#set($javaField=$column.javaField)
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if($column.pk)
-                {
-                    field : '${javaField}', 
-                    title : '${comment}',
-                    visible: false
-                },
-#elseif($column.list && "" != $dictType)
-                {
-                    field : '${javaField}', 
-                    title : '${comment}',
-                    formatter: function(value, row, index) {
-                       return $.table.selectDictLabel(${javaField}Datas, value);
-                    }
-                },
-#elseif($column.list && "" != $javaField)
-                {
-                    field : '${javaField}', 
-                    title : '${comment}'
-                },
-#end                
-#end
-                {
-                    title: '鎿嶄綔',
-                    align: 'center',
-                    formatter: function(value, row, index) {
-                        var actions = [];
-                        actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.${pkColumn.javaField} + '\')"><i class="fa fa-edit"></i>缂栬緫</a> ');
-                        actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.${pkColumn.javaField} + '\')"><i class="fa fa-remove"></i>鍒犻櫎</a>');
-                        return actions.join('');
-                    }
-                }]
-            };
-            $.table.init(options);
-        });
-    </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/src/main/resources/vm/html/tree.html.vm b/src/main/resources/vm/html/tree.html.vm
deleted file mode 100644
index a3297c6..0000000
--- a/src/main/resources/vm/html/tree.html.vm
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
-<head>
-    <th:block th:include="include :: header('${functionName}鏍戦�夋嫨')" />
-    <th:block th:include="include :: ztree-css" />
-</head>
-<style>
-    body{height:auto;font-family: "Microsoft YaHei";}
-    button{font-family: "SimSun","Helvetica Neue",Helvetica,Arial;}
-</style>
-<body class="hold-transition box box-main">
-#set($treeId = "${className}?." + $treeCode)
-#set($treeName = "${className}?." + $treeName)
-    <input id="treeId"   name="treeId"    type="hidden" th:value="${${treeId}}"/>
-    <input id="treeName" name="treeName"  type="hidden" th:value="${${treeName}}"/>
-    <div class="wrapper"><div class="treeShowHideButton" onclick="$.tree.toggleSearch();">
-        <label id="btnShow" title="鏄剧ず鎼滅储" style="display:none;">锔�</label>
-        <label id="btnHide" title="闅愯棌鎼滅储">锔�</label>
-    </div>
-    <div class="treeSearchInput" id="search">
-        <label for="keyword">鍏抽敭瀛楋細</label><input type="text" class="empty" id="keyword" maxlength="50">
-        <button class="btn" id="btn" onclick="$.tree.searchNode()"> 鎼滅储 </button>
-    </div>
-    <div class="treeExpandCollapse">
-        <a href="#" onclick="$.tree.expand()">灞曞紑</a> /
-        <a href="#" onclick="$.tree.collapse()">鎶樺彔</a>
-    </div>
-    <div id="tree" class="ztree treeselect"></div>
-    </div>
-    <th:block th:include="include :: footer" />
-    <th:block th:include="include :: ztree-js" />
-    <script th:inline="javascript">
-        $(function() {
-            var url = ctx + "system/${businessName}/treeData";
-            var options = {
-                url: url,
-                expandLevel: 2,
-                onClick : zOnClick
-            };
-            $.tree.init(options);
-        });
-
-        function zOnClick(event, treeId, treeNode) {
-            var treeId = treeNode.id;
-            var treeName = treeNode.name;
-            $("#treeId").val(treeId);
-            $("#treeName").val(treeName);
-        }
-    </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/src/main/resources/vm/java/controller.java.vm b/src/main/resources/vm/java/controller.java.vm
deleted file mode 100644
index 9d86e1f..0000000
--- a/src/main/resources/vm/java/controller.java.vm
+++ /dev/null
@@ -1,200 +0,0 @@
-package ${packageName}.${moduleName}.controller;
-
-import java.util.List;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-import com.ots.framework.aspectj.lang.annotation.Log;
-import com.ots.framework.aspectj.lang.enums.BusinessType;
-import ${packageName}.${moduleName}.domain.${ClassName};
-import ${packageName}.${moduleName}.service.I${ClassName}Service;
-import com.ots.framework.web.controller.BaseController;
-import com.ots.framework.web.domain.AjaxResult;
-import com.ots.common.utils.poi.ExcelUtil;
-#if($table.crud)
-import com.ots.framework.web.page.TableDataInfo;
-#elseif($table.tree)
-import com.ots.common.utils.StringUtils;
-import com.ots.framework.web.domain.Ztree;
-#end
-import org.springframework.stereotype.Controller;
-
-/**
- * ${functionName}Controller
- * 
- * @author ${author}
- * @date ${datetime}
- */
-@Controller
-@RequestMapping("/${moduleName}/${businessName}")
-public class ${ClassName}Controller extends BaseController
-{
-    private String prefix = "${moduleName}/${businessName}";
-
-    @Autowired
-    private I${ClassName}Service ${className}Service;
-
-    @RequiresPermissions("${permissionPrefix}:view")
-    @GetMapping()
-    public String ${businessName}()
-    {
-        return prefix + "/${businessName}";
-    }
-
-#if($table.tree)
-    /**
-     * 鏌ヨ${functionName}鏍戝垪琛�
-     */
-    @RequiresPermissions("${permissionPrefix}:list")
-    @PostMapping("/list")
-    @ResponseBody
-    public List<${ClassName}> list(${ClassName} ${className})
-    {
-        List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});
-        return list;
-    }
-#elseif($table.crud)
-    /**
-     * 鏌ヨ${functionName}鍒楄〃
-     */
-    @RequiresPermissions("${permissionPrefix}:list")
-    @PostMapping("/list")
-    @ResponseBody
-    public TableDataInfo list(${ClassName} ${className})
-    {
-        startPage();
-        List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});
-        return getDataTable(list);
-    }
-#end
-
-    /**
-     * 瀵煎嚭${functionName}鍒楄〃
-     */
-    @RequiresPermissions("${permissionPrefix}:export")
-    @PostMapping("/export")
-    @ResponseBody
-    public AjaxResult export(${ClassName} ${className})
-    {
-        List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});
-        ExcelUtil<${ClassName}> util = new ExcelUtil<${ClassName}>(${ClassName}.class);
-        return util.exportExcel(list, "${businessName}");
-    }
-
-#if($table.crud)
-    /**
-     * 鏂板${functionName}
-     */
-    @GetMapping("/add")
-    public String add()
-    {
-        return prefix + "/add";
-    }
-#elseif($table.tree)
-    /**
-     * 鏂板${functionName}
-     */
-    @GetMapping(value = { "/add/{${pkColumn.javaField}}", "/add/" })
-    public String add(@PathVariable(value = "${pkColumn.javaField}", required = false) Long ${pkColumn.javaField}, ModelMap mmap)
-    {
-        if (StringUtils.isNotNull(${pkColumn.javaField}))
-        {
-            mmap.put("${className}", ${className}Service.select${ClassName}ById(${pkColumn.javaField}));
-        }
-        return prefix + "/add";
-    }
-#end
-
-    /**
-     * 鏂板淇濆瓨${functionName}
-     */
-    @RequiresPermissions("${permissionPrefix}:add")
-    @Log(title = "${functionName}", businessType = BusinessType.INSERT)
-    @PostMapping("/add")
-    @ResponseBody
-    public AjaxResult addSave(${ClassName} ${className})
-    {
-        return toAjax(${className}Service.insert${ClassName}(${className}));
-    }
-
-    /**
-     * 淇敼${functionName}
-     */
-    @GetMapping("/edit/{${pkColumn.javaField}}")
-    public String edit(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}, ModelMap mmap)
-    {
-        ${ClassName} ${className} = ${className}Service.select${ClassName}ById(${pkColumn.javaField});
-        mmap.put("${className}", ${className});
-        return prefix + "/edit";
-    }
-
-    /**
-     * 淇敼淇濆瓨${functionName}
-     */
-    @RequiresPermissions("${permissionPrefix}:edit")
-    @Log(title = "${functionName}", businessType = BusinessType.UPDATE)
-    @PostMapping("/edit")
-    @ResponseBody
-    public AjaxResult editSave(${ClassName} ${className})
-    {
-        return toAjax(${className}Service.update${ClassName}(${className}));
-    }
-
-#if($table.crud)
-    /**
-     * 鍒犻櫎${functionName}
-     */
-    @RequiresPermissions("${permissionPrefix}:remove")
-    @Log(title = "${functionName}", businessType = BusinessType.DELETE)
-    @PostMapping( "/remove")
-    @ResponseBody
-    public AjaxResult remove(String ids)
-    {
-        return toAjax(${className}Service.delete${ClassName}ByIds(ids));
-    }
-#elseif($table.tree)
-    /**
-     * 鍒犻櫎
-     */
-    @RequiresPermissions("${permissionPrefix}:remove")
-    @Log(title = "${functionName}", businessType = BusinessType.DELETE)
-    @GetMapping("/remove/{${pkColumn.javaField}}")
-    @ResponseBody
-    public AjaxResult remove(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField})
-    {
-        return toAjax(${className}Service.delete${ClassName}ById(${pkColumn.javaField}));
-    }
-#end
-#if($table.tree)
-
-    /**
-     * 閫夋嫨${functionName}鏍�
-     */
-#set($BusinessName=$businessName.substring(0,1).toUpperCase() + ${businessName.substring(1)})
-    @GetMapping(value = { "/select${BusinessName}Tree/{${pkColumn.javaField}}", "/select${BusinessName}Tree/" })
-    public String select${BusinessName}Tree(@PathVariable(value = "${pkColumn.javaField}", required = false) Long ${pkColumn.javaField}, ModelMap mmap)
-    {
-        if (StringUtils.isNotNull(${pkColumn.javaField}))
-        {
-            mmap.put("${className}", ${className}Service.select${ClassName}ById(${pkColumn.javaField}));
-        }
-        return prefix + "/tree";
-    }
-
-    /**
-     * 鍔犺浇${functionName}鏍戝垪琛�
-     */
-    @GetMapping("/treeData")
-    @ResponseBody
-    public List<Ztree> treeData()
-    {
-        List<Ztree> ztrees = ${className}Service.select${ClassName}Tree();
-        return ztrees;
-    }
-#end
-}
diff --git a/src/main/resources/vm/java/domain.java.vm b/src/main/resources/vm/java/domain.java.vm
deleted file mode 100644
index 829d11f..0000000
--- a/src/main/resources/vm/java/domain.java.vm
+++ /dev/null
@@ -1,76 +0,0 @@
-package ${packageName}.${moduleName}.domain;
-
-import com.ots.framework.aspectj.lang.annotation.Excel;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-
-#if($table.crud)
-import com.ots.framework.web.domain.BaseEntity;
-#elseif($table.tree)
-#end
-#foreach ($import in $importList)
-import ${import};
-#end
-
-/**
- * ${functionName}瀵硅薄 ${tableName}
- * 
- * @author ${author}
- * @date ${datetime}
- */
-#if($table.crud)
-#set($Entity="BaseEntity")
-#elseif($table.tree)
-#set($Entity="TreeEntity")
-#end
-public class ${ClassName} extends ${Entity}
-{
-    private static final long serialVersionUID = 1L;
-
-#foreach ($column in $columns)
-#if(!$column.superColumn)
-    /** $column.columnComment */
-#if($column.list)
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if($parentheseIndex != -1)
-    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
-#elseif($column.javaType == 'Date')
-    @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd")
-#else
-    @Excel(name = "${comment}")
-#end
-#end
-    private $column.javaType $column.javaField;
-
-#end
-#end
-#foreach ($column in $columns)
-#if(!$column.superColumn)
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-    public void set${AttrName}($column.javaType $column.javaField) 
-    {
-        this.$column.javaField = $column.javaField;
-    }
-
-    public $column.javaType get${AttrName}() 
-    {
-        return $column.javaField;
-    }
-#end
-#end
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-#foreach ($column in $columns)
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-            .append("${column.javaField}", get${AttrName}())
-#end
-            .toString();
-    }
-}
diff --git a/src/main/resources/vm/java/mapper.java.vm b/src/main/resources/vm/java/mapper.java.vm
deleted file mode 100644
index 7c702f2..0000000
--- a/src/main/resources/vm/java/mapper.java.vm
+++ /dev/null
@@ -1,61 +0,0 @@
-package ${packageName}.${moduleName}.mapper;
-
-import ${packageName}.${moduleName}.domain.${ClassName};
-import java.util.List;
-
-/**
- * ${functionName}Mapper鎺ュ彛
- * 
- * @author ${author}
- * @date ${datetime}
- */
-public interface ${ClassName}Mapper 
-{
-    /**
-     * 鏌ヨ${functionName}
-     * 
-     * @param ${pkColumn.javaField} ${functionName}ID
-     * @return ${functionName}
-     */
-    public ${ClassName} select${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField});
-
-    /**
-     * 鏌ヨ${functionName}鍒楄〃
-     * 
-     * @param ${className} ${functionName}
-     * @return ${functionName}闆嗗悎
-     */
-    public List<${ClassName}> select${ClassName}List(${ClassName} ${className});
-
-    /**
-     * 鏂板${functionName}
-     * 
-     * @param ${className} ${functionName}
-     * @return 缁撴灉
-     */
-    public int insert${ClassName}(${ClassName} ${className});
-
-    /**
-     * 淇敼${functionName}
-     * 
-     * @param ${className} ${functionName}
-     * @return 缁撴灉
-     */
-    public int update${ClassName}(${ClassName} ${className});
-
-    /**
-     * 鍒犻櫎${functionName}
-     * 
-     * @param ${pkColumn.javaField} ${functionName}ID
-     * @return 缁撴灉
-     */
-    public int delete${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField});
-
-    /**
-     * 鎵归噺鍒犻櫎${functionName}
-     * 
-     * @param ${pkColumn.javaField}s 闇�瑕佸垹闄ょ殑鏁版嵁ID
-     * @return 缁撴灉
-     */
-    public int delete${ClassName}ByIds(String[] ${pkColumn.javaField}s);
-}
diff --git a/src/main/resources/vm/java/service.java.vm b/src/main/resources/vm/java/service.java.vm
deleted file mode 100644
index 90dc1fa..0000000
--- a/src/main/resources/vm/java/service.java.vm
+++ /dev/null
@@ -1,73 +0,0 @@
-package ${packageName}.${moduleName}.service;
-
-import ${packageName}.${moduleName}.domain.${ClassName};
-import java.util.List;
-#if($table.tree)
-import com.ots.framework.web.domain.Ztree;
-#end
-
-/**
- * ${functionName}Service鎺ュ彛
- * 
- * @author ${author}
- * @date ${datetime}
- */
-public interface I${ClassName}Service 
-{
-    /**
-     * 鏌ヨ${functionName}
-     * 
-     * @param ${pkColumn.javaField} ${functionName}ID
-     * @return ${functionName}
-     */
-    public ${ClassName} select${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField});
-
-    /**
-     * 鏌ヨ${functionName}鍒楄〃
-     * 
-     * @param ${className} ${functionName}
-     * @return ${functionName}闆嗗悎
-     */
-    public List<${ClassName}> select${ClassName}List(${ClassName} ${className});
-
-    /**
-     * 鏂板${functionName}
-     * 
-     * @param ${className} ${functionName}
-     * @return 缁撴灉
-     */
-    public int insert${ClassName}(${ClassName} ${className});
-
-    /**
-     * 淇敼${functionName}
-     * 
-     * @param ${className} ${functionName}
-     * @return 缁撴灉
-     */
-    public int update${ClassName}(${ClassName} ${className});
-
-    /**
-     * 鎵归噺鍒犻櫎${functionName}
-     * 
-     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
-     * @return 缁撴灉
-     */
-    public int delete${ClassName}ByIds(String ids);
-
-    /**
-     * 鍒犻櫎${functionName}淇℃伅
-     * 
-     * @param ${pkColumn.javaField} ${functionName}ID
-     * @return 缁撴灉
-     */
-    public int delete${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField});
-#if($table.tree)
-
-    /**
-     * 鏌ヨ${functionName}鏍戝垪琛�
-     * 
-     * @return 鎵�鏈�${functionName}淇℃伅
-     */
-    public List<Ztree> select${ClassName}Tree();
-#end
-}
diff --git a/src/main/resources/vm/java/serviceImpl.java.vm b/src/main/resources/vm/java/serviceImpl.java.vm
deleted file mode 100644
index 3ec8c32..0000000
--- a/src/main/resources/vm/java/serviceImpl.java.vm
+++ /dev/null
@@ -1,140 +0,0 @@
-package ${packageName}.${moduleName}.service.impl;
-
-import java.util.List;
-#if($table.tree)
-import java.util.ArrayList;
-import com.ots.framework.web.domain.Ztree;
-#end
-#foreach ($column in $columns)
-#if($column.javaField == 'createTime' || $column.javaField == 'updateTime')
-import com.ots.common.utils.DateUtils;
-#break
-#end
-#end
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import ${packageName}.${moduleName}.mapper.${ClassName}Mapper;
-import ${packageName}.${moduleName}.domain.${ClassName};
-import ${packageName}.${moduleName}.service.I${ClassName}Service;
-import com.ots.common.utils.text.Convert;
-
-/**
- * ${functionName}Service涓氬姟灞傚鐞�
- * 
- * @author ${author}
- * @date ${datetime}
- */
-@Service
-public class ${ClassName}ServiceImpl implements I${ClassName}Service 
-{
-    @Autowired
-    private ${ClassName}Mapper ${className}Mapper;
-
-    /**
-     * 鏌ヨ${functionName}
-     * 
-     * @param ${pkColumn.javaField} ${functionName}ID
-     * @return ${functionName}
-     */
-    @Override
-    public ${ClassName} select${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField})
-    {
-        return ${className}Mapper.select${ClassName}ById(${pkColumn.javaField});
-    }
-
-    /**
-     * 鏌ヨ${functionName}鍒楄〃
-     * 
-     * @param ${className} ${functionName}
-     * @return ${functionName}
-     */
-    @Override
-    public List<${ClassName}> select${ClassName}List(${ClassName} ${className})
-    {
-        return ${className}Mapper.select${ClassName}List(${className});
-    }
-
-    /**
-     * 鏂板${functionName}
-     * 
-     * @param ${className} ${functionName}
-     * @return 缁撴灉
-     */
-    @Override
-    public int insert${ClassName}(${ClassName} ${className})
-    {
-#foreach ($column in $columns)
-#if($column.javaField == 'createTime')
-        ${className}.setCreateTime(DateUtils.getNowDate());
-#end
-#end
-        return ${className}Mapper.insert${ClassName}(${className});
-    }
-
-    /**
-     * 淇敼${functionName}
-     * 
-     * @param ${className} ${functionName}
-     * @return 缁撴灉
-     */
-    @Override
-    public int update${ClassName}(${ClassName} ${className})
-    {
-#foreach ($column in $columns)
-#if($column.javaField == 'createTime')
-        ${className}.setUpdateTime(DateUtils.getNowDate());
-#end
-#end
-        return ${className}Mapper.update${ClassName}(${className});
-    }
-
-    /**
-     * 鍒犻櫎${functionName}瀵硅薄
-     * 
-     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
-     * @return 缁撴灉
-     */
-    @Override
-    public int delete${ClassName}ByIds(String ids)
-    {
-        return ${className}Mapper.delete${ClassName}ByIds(Convert.toStrArray(ids));
-    }
-
-    /**
-     * 鍒犻櫎${functionName}淇℃伅
-     * 
-     * @param ${pkColumn.javaField} ${functionName}ID
-     * @return 缁撴灉
-     */
-    public int delete${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField})
-    {
-        return ${className}Mapper.delete${ClassName}ById(${pkColumn.javaField});
-    }
-#if($table.tree)
-
-    /**
-     * 鏌ヨ${functionName}鏍戝垪琛�
-     * 
-     * @return 鎵�鏈�${functionName}淇℃伅
-     */
-    @Override
-    public List<Ztree> select${ClassName}Tree()
-    {
-        List<${ClassName}> ${className}List = ${className}Mapper.select${ClassName}List(new ${ClassName}());
-        List<Ztree> ztrees = new ArrayList<Ztree>();
-        for (${ClassName} ${className} : ${className}List)
-        {
-            Ztree ztree = new Ztree();
-#set($TreeCode=$treeCode.substring(0,1).toUpperCase() + ${treeCode.substring(1)})
-#set($TreeParentCode=$treeParentCode.substring(0,1).toUpperCase() + ${treeParentCode.substring(1)})
-#set($TreeName=$treeName.substring(0,1).toUpperCase() + ${treeName.substring(1)})
-            ztree.setId(${className}.get${TreeCode}());
-            ztree.setpId(${className}.get${TreeParentCode}());
-            ztree.setName(${className}.get${TreeName}());
-            ztree.setTitle(${className}.get${TreeName}());
-            ztrees.add(ztree);
-        }
-        return ztrees;
-    }
-#end
-}
diff --git a/src/main/resources/vm/sql/sql.vm b/src/main/resources/vm/sql/sql.vm
deleted file mode 100644
index de26cb3..0000000
--- a/src/main/resources/vm/sql/sql.vm
+++ /dev/null
@@ -1,19 +0,0 @@
--- 鑿滃崟 SQL
-insert into sys_menu (menu_name, parent_id, order_num, url,menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
-values('${functionName}', '3', '1', '/${moduleName}/${businessName}', 'C', '0', '${permissionPrefix}:view', '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '${functionName}鑿滃崟');
-
--- 鎸夐挳鐖惰彍鍗旾D
-SELECT @parentId := LAST_INSERT_ID();
-
--- 鎸夐挳 SQL
-insert into sys_menu  (menu_name, parent_id, order_num, url,menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
-values('${functionName}鏌ヨ', @parentId, '1',  '#',  'F', '0', '${permissionPrefix}:list',         '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '');
-
-insert into sys_menu  (menu_name, parent_id, order_num, url,menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
-values('${functionName}鏂板', @parentId, '2',  '#',  'F', '0', '${permissionPrefix}:add',          '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '');
-
-insert into sys_menu  (menu_name, parent_id, order_num, url,menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
-values('${functionName}淇敼', @parentId, '3',  '#',  'F', '0', '${permissionPrefix}:edit',         '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '');
-
-insert into sys_menu  (menu_name, parent_id, order_num, url,menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
-values('${functionName}鍒犻櫎', @parentId, '4',  '#',  'F', '0', '${permissionPrefix}:remove',       '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '');
diff --git a/src/main/resources/vm/xml/mapper.xml.vm b/src/main/resources/vm/xml/mapper.xml.vm
deleted file mode 100644
index 516211e..0000000
--- a/src/main/resources/vm/xml/mapper.xml.vm
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="${packageName}.${moduleName}.mapper.${ClassName}Mapper">
-    
-    <resultMap type="${ClassName}" id="${ClassName}Result">
-#foreach ($column in $columns)
-        <result property="${column.javaField}"    column="${column.columnName}"    />
-#end
-#if($table.tree)
-        <result property="parentName" column="parent_name" />
-#end
-    </resultMap>
-
-    <sql id="select${ClassName}Vo">
-        select#foreach($column in $columns) $column.columnName#if($velocityCount != $columns.size()),#end#end from ${tableName}
-    </sql>
-
-    <select id="select${ClassName}List" parameterType="${ClassName}" resultMap="${ClassName}Result">
-        <include refid="select${ClassName}Vo"/>
-        <where>  
-#foreach($column in $columns)
-#set($queryType=$column.queryType)
-#set($javaField=$column.javaField)
-#set($javaType=$column.javaType)
-#set($columnName=$column.columnName)
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-#if($column.query)
-#if($column.queryType == "EQ")
-            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName = #{$javaField}</if>
-#elseif($queryType == "NE")
-            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName != #{$javaField}</if>
-#elseif(\$queryType == "GT")
-            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &gt; #{$javaField}</if>
-#elseif(\$queryType == "GTE")
-            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &gt;= #{$javaField}</if>
-#elseif(\$queryType == "LT")
-            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &lt; #{$javaField}</if>
-#elseif(\$queryType == "LTE")
-            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &lt;= #{$javaField}</if>
-#elseif($queryType == "LIKE")
-            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName like concat('%', #{$javaField}, '%')</if>
-#elseif($queryType == "BETWEEN")
-            <if test="params.begin$AttrName != null and params.begin$AttrName != '' and params.end$AttrName != null and params.end$AttrName != ''"> and $columnName between #{params.begin$AttrName} and #{params.end$AttrName}</if>
-#end
-#end
-#end
-        </where>
-#if($table.tree)
-        order by ${tree_parent_code}
-#end
-    </select>
-    
-    <select id="select${ClassName}ById" parameterType="${pkColumn.javaType}" resultMap="${ClassName}Result">
-#if($table.crud)
-        <include refid="select${ClassName}Vo"/>
-        where ${pkColumn.columnName} = #{${pkColumn.javaField}}
-#elseif($table.tree)
-        select#foreach($column in $columns) t.$column.columnName,#end p.dept_name as parent_name
-        from ${tableName} t
-        left join ${tableName} p on p.${pkColumn.columnName} = t.${tree_parent_code}
-        where t.${pkColumn.columnName} = #{${pkColumn.javaField}}
-#end
-    </select>
-        
-    <insert id="insert${ClassName}" parameterType="${ClassName}"#if($pkColumn.increment) useGeneratedKeys="true" keyProperty="$pkColumn.javaField"#end>
-        insert into ${tableName}
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-#foreach($column in $columns)
-#if($column.columnName != $pkColumn.columnName || !$pkColumn.increment)
-            <if test="$column.javaField != null #if($column.javaType == 'String' ) and $column.javaField != ''#end">$column.columnName,</if>
-#end
-#end
-         </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-#foreach($column in $columns)
-#if($column.columnName != $pkColumn.columnName || !$pkColumn.increment)
-            <if test="$column.javaField != null #if($column.javaType == 'String' ) and $column.javaField != ''#end">#{$column.javaField},</if>
-#end
-#end
-         </trim>
-    </insert>
-
-    <update id="update${ClassName}" parameterType="${ClassName}">
-        update ${tableName}
-        <trim prefix="SET" suffixOverrides=",">
-#foreach($column in $columns)
-#if($column.columnName != $pkColumn.columnName)
-            <if test="$column.javaField != null #if($column.javaType == 'String' ) and $column.javaField != ''#end">$column.columnName = #{$column.javaField},</if>
-#end
-#end
-        </trim>
-        where ${pkColumn.columnName} = #{${pkColumn.javaField}}
-    </update>
-
-    <delete id="delete${ClassName}ById" parameterType="${pkColumn.javaType}">
-        delete from ${tableName} where ${pkColumn.columnName} = #{${pkColumn.javaField}}
-    </delete>
-
-    <delete id="delete${ClassName}ByIds" parameterType="String">
-        delete from ${tableName} where ${pkColumn.columnName} in 
-        <foreach item="${pkColumn.javaField}" collection="array" open="(" separator="," close=")">
-            #{${pkColumn.javaField}}
-        </foreach>
-    </delete>
-    
-</mapper>
\ No newline at end of file
diff --git a/src/main/scripts/ots.sh b/src/main/scripts/ots.sh
deleted file mode 100644
index d4bd927..0000000
--- a/src/main/scripts/ots.sh
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/usr/bin/env bash
-# -----------------------------------------------------------------------------
-#   Author: guobiao8900@126.com
-#     date: 2019-10-22 10:39
-#     Desc: TAI Online Testing System Deploy
-# -----------------------------------------------------------------------------
-# Source function library.
-. /etc/rc.d/init.d/functions
-export LANG="en_US.UTF-8"
-PROJECT_NAME=OTS
-APP_NAME=manager
-RUN_USER=root
-PROG=${PROJECT_NAME}-${APP_NAME}
-PID_FILE=/tmp/$PROG.pid
-
-BASE_DIR=$(cd `dirname $0`; pwd)
-APP_HOME=$(cd `dirname ${BASE_DIR}`; pwd)
-
-APP_JAR=${APP_HOME}/main/*.jar
-APP_CONF=${APP_HOME}/conf/
-APP_LOG_DIR=/data/logs/${PROJECT_NAME}/${APP_NAME}
-
-#JVM鍙傛暟
-JVM_OPTS="-Xms1024m -Xmx1024m -Xmn256m -Djava.awt.headless=true -XX:MaxPermSize=128m"
-PORT=8090
-
-[ -z "`grep $RUN_USER /etc/passwd`" ] && echo -e "error: user $RUN_USER does not exist"
-
-[ -n "${APP_LOG_DIR}" ] && mkdir -pv ${APP_LOG_DIR} >/dev/null && chown -R ${RUN_USER}:${RUN_USER} ${APP_LOG_DIR} >/dev/null
-
-if [ -f "${APP_CONF}/application.yml" ]; then
-    PORT="$(cat ${APP_CONF}/application.yml | grep server.port | tr -cd "[0-9]")"
-fi
-
-JAVA_CMD="java -jar ${APP_JAR}"
-PARAMS="-Dspring.config.location=${APP_CONF} --daemon"
-[ -n "$PORT" ] && PARAMS="$PARAMS --server.port=${PORT}"
-[ -n "$JVM_OPTS" ] && PARAMS="$PARAMS ${JVM_OPTS}"
-
-RETVAL=1
-liv=
-
-start() {
-
-    echo -n "Starting $PROG "
-    if [ $(whoami) == 'root' ]
-    then
-        echo "daemon --user $RUN_USER --pidfile $PID_FILE $JAVA_CMD $PARAMS"
-        daemon --user $RUN_USER --pidfile $PID_FILE "$JAVA_CMD $PARAMS 2>&1 &" > /dev/null
-    else
-        daemon --pidfile $PID_FILE "$JAVA_CMD $PARAMS 2>&1 &" > /dev/null
-    fi
-        RETVAL=$?
-
-    if [ $RETVAL = 0 ]
-    then
-        for ((i=0;i<30;i++))
-        do
-            if [ -n "$PORT" ]
-            then
-                liv=$(netstat -an | grep $PORT | grep LISTEN | grep -v grep | awk '{print $4}')
-                [ -n "$liv" ] && pid=$(ps -ef | grep -v grep | grep java | grep $APP_JAR | awk '{print $2}')
-            else
-                pid=$(ps -ef | grep -v grep | grep java | grep $APP_JAR | awk '{print $2}')
-            fi
-            if [ -n "$pid" ]
-            then
-                echo $pid > "$PID_FILE";
-                chown ${RUN_USER}:${RUN_USER} "$PID_FILE";
-                RETVAL=0
-                break
-            fi
-            RETVAL=1
-            sleep 1
-        done
-    fi
-
-    if [ $RETVAL -eq 0 ]
-    then
-        action $"pid: $pid" /bin/true
-    else
-        action $"" /bin/false
-    fi
-    return $RETVAL
-
-}
-
-stop() {
-    [ -f "$PID_FILE" ] && local pid=$(cat $PID_FILE)
-    if [ -f $PID_FILE ]; then
-        killproc -p $PID_FILE
-        RETVAL=$?
-    fi
-
-    if [ $RETVAL -eq 0 ]; then
-        action "Stopping $PROG pid: $pid" /bin/true
-        [ -f $PID_FILE  ] && rm -rf $PID_FILE
-    elif [ $RETVAL -ne 0 ]; then
-        action "Stopping $PROG" /bin/false
-        RETVAL=1
-    fi
-    return $RETVAL
-}
-
-
-restart() {
-    rh_status
-    status=$(rh_status| tr -cd "[0-9]")
-    [ -n "$status" ] && stop
-    sleep 2
-    start
-}
-
-rh_status() {
-     status -p $PID_FILE $APP_NAME
-}
-
-rh_status_q() {
-    rh_status >/dev/null 2>&1
-}
-
-case "$1" in
-    start)
-    (rh_status_q && rh_status ) && exit 0
-    $1
-    ;;
-    stop)
-    (rh_status_q || rh_status )|| exit 0
-    $1
-    ;;
-    restart)
-    $1
-    ;;
-    status)
-    rh_status
-    ;;
-    *)
-    echo $"Usage: $0 {start|stop|status|restart}"
-    exit 2
-    ;;
-esac

--
Gitblit v1.9.1