diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 689ed92..5f59532 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,17 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ChangeListManager">
-    <list default="true" id="1fe4ff20-6474-45ee-a361-9572a808e9c9" name="Default Changelist" comment="">
+    <list default="true" id="baeae966-16bb-4f97-a411-22fe5a65cefd" name="Default Changelist" comment="">
+      <change afterPath="$PROJECT_DIR$/src/main/resources/templates/check/checkingRegister/checkingRegister.html" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailService.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/resources/templates/inventory/cycleCountDetail/add.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/inventory/cycleCountDetail/add.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/resources/templates/inventory/cycleCountDetail/addGoods.html" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/resources/templates/inventory/cycleCountDetail/edit.html" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/resources/templates/inventory/cycleCountHeader/cycleCountHeader.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/inventory/cycleCountHeader/cycleCountHeader.html" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkDetail/controller/CheckDetailController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkDetail/controller/CheckDetailController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkDetail/service/CheckDetailService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkDetail/service/CheckDetailService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/resources/templates/check/checkDetail/checkComplete.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/check/checkDetail/checkComplete.html" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/resources/templates/check/checkDetail/checkDetail.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/check/checkDetail/checkDetail.html" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/resources/templates/check/checkHeader/checkHeader.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/check/checkHeader/checkHeader.html" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiptHeader/receiptHeader.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiptHeader/receiptHeader.html" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -20,13 +22,13 @@
     <option name="LAST_RESOLUTION" value="IGNORE" />
   </component>
   <component name="DatabaseView">
-    <option name="SHOW_INTERMEDIATE" value="false" />
+    <option name="SHOW_INTERMEDIATE" value="true" />
     <option name="GROUP_DATA_SOURCES" value="true" />
     <option name="GROUP_SCHEMA" value="true" />
     <option name="GROUP_CONTENTS" value="false" />
     <option name="SORT_POSITIONED" value="false" />
     <option name="SHOW_EMPTY_GROUPS" value="false" />
-    <option name="AUTO_SCROLL_FROM_SOURCE" value="true" />
+    <option name="AUTO_SCROLL_FROM_SOURCE" value="false" />
     <option name="HIDDEN_KINDS">
       <set />
     </option>
@@ -62,506 +64,63 @@
         <item name="@localhost" type="feb32156:DbDataSourceImpl" />
         <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" />
       </path>
+      <path>
+        <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" />
+        <item name="@localhost" type="feb32156:DbDataSourceImpl" />
+        <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" />
+        <item name="wms2.0: schema" type="76f4a085:MysqlImplModel$Schema" />
+      </path>
+      <path>
+        <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" />
+        <item name="@localhost" type="feb32156:DbDataSourceImpl" />
+        <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" />
+        <item name="wms2.0: schema" type="76f4a085:MysqlImplModel$Schema" />
+        <item name="check_detail: table" type="285a2a93:MysqlImplModel$Table" />
+      </path>
+      <path>
+        <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" />
+        <item name="@localhost" type="feb32156:DbDataSourceImpl" />
+        <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" />
+        <item name="wms2.0: schema" type="76f4a085:MysqlImplModel$Schema" />
+        <item name="check_header: table" type="285a2a93:MysqlImplModel$Table" />
+      </path>
     </expand>
     <select />
   </component>
-  <component name="FileEditorManager">
-    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="150">
-              <caret line="145" selection-start-line="145" selection-end-line="145" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailService.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="147">
-              <caret line="11" column="15" selection-start-line="11" selection-start-column="15" selection-end-line="11" selection-end-column="15" />
-              <folding>
-                <element signature="imports" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="4104">
-              <caret line="335" column="20" selection-start-line="335" selection-start-column="20" selection-end-line="335" selection-end-column="20" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="86">
-              <caret line="43" column="89" selection-start-line="43" selection-start-column="69" selection-end-line="43" selection-end-column="89" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-    </leaf>
-  </component>
   <component name="FileTemplateManagerImpl">
     <option name="RECENT_TEMPLATES">
       <list>
-        <option value="CSS File" />
+        <option value="Interface" />
         <option value="Class" />
         <option value="HTML File" />
+        <option value="Enum" />
       </list>
     </option>
   </component>
-  <component name="FindInProjectRecents">
-    <findStrings>
-      <find>a</find>
-    </findStrings>
-  </component>
   <component name="Git.Settings">
     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
-    <option name="RESET_MODE" value="HARD" />
-  </component>
-  <component name="IdeDocumentHistory">
-    <option name="CHANGED_PATHS">
-      <list>
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailServiceImpl.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/templates/task/taskHeader/taskHeader.html" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskDetail/domain/TaskDetail.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/templates/inventory/cycleCountHeader/cycleCountHeader.html" />
-        <option value="$PROJECT_DIR$/src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailService.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/templates/inventory/cycleCountDetail/add.html" />
-      </list>
-    </option>
-  </component>
-  <component name="JsFlowSettings">
-    <service-enabled>true</service-enabled>
-    <exe-path />
-    <other-services-enabled>true</other-services-enabled>
-    <auto-save>true</auto-save>
-  </component>
-  <component name="MavenImportPreferences">
-    <option name="importingSettings">
-      <MavenImportingSettings>
-        <option name="importAutomatically" value="true" />
-      </MavenImportingSettings>
-    </option>
-  </component>
-  <component name="ProjectFrameBounds">
-    <option name="x" value="-8" />
-    <option name="width" value="1934" />
-    <option name="height" value="1038" />
-  </component>
-  <component name="ProjectId" id="1Q2nhRM7LRz3yFWhpclOKgTjxn0" />
-  <component name="ProjectLevelVcsManager">
-    <ConfirmationsSetting value="2" id="Add" />
-  </component>
-  <component name="ProjectView">
-    <navigator proportions="" version="1">
-      <foldersAlwaysOnTop value="true" />
-    </navigator>
-    <panes>
-      <pane id="Scope" />
-      <pane id="ProjectPane">
-        <subPane>
-          <expand>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name=".idea" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-              <item name="huaheng" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-              <item name="huaheng" type="462c0819:PsiDirectoryNode" />
-              <item name="pc" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-              <item name="huaheng" type="462c0819:PsiDirectoryNode" />
-              <item name="pc" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-              <item name="huaheng" type="462c0819:PsiDirectoryNode" />
-              <item name="pc" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="adjustDetail" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-              <item name="huaheng" type="462c0819:PsiDirectoryNode" />
-              <item name="pc" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="adjustDetail" type="462c0819:PsiDirectoryNode" />
-              <item name="domain" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-              <item name="huaheng" type="462c0819:PsiDirectoryNode" />
-              <item name="pc" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="adjustDetail" type="462c0819:PsiDirectoryNode" />
-              <item name="mapper" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-              <item name="huaheng" type="462c0819:PsiDirectoryNode" />
-              <item name="pc" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="cycleCountDetail" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-              <item name="huaheng" type="462c0819:PsiDirectoryNode" />
-              <item name="pc" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="cycleCountDetail" type="462c0819:PsiDirectoryNode" />
-              <item name="controller" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-              <item name="huaheng" type="462c0819:PsiDirectoryNode" />
-              <item name="pc" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="cycleCountDetail" type="462c0819:PsiDirectoryNode" />
-              <item name="domain" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-              <item name="huaheng" type="462c0819:PsiDirectoryNode" />
-              <item name="pc" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="cycleCountDetail" type="462c0819:PsiDirectoryNode" />
-              <item name="mapper" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-              <item name="huaheng" type="462c0819:PsiDirectoryNode" />
-              <item name="pc" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="cycleCountDetail" type="462c0819:PsiDirectoryNode" />
-              <item name="service" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-              <item name="huaheng" type="462c0819:PsiDirectoryNode" />
-              <item name="pc" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="cycleCountHeader" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-              <item name="huaheng" type="462c0819:PsiDirectoryNode" />
-              <item name="pc" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="cycleCountHeader" type="462c0819:PsiDirectoryNode" />
-              <item name="controller" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-              <item name="huaheng" type="462c0819:PsiDirectoryNode" />
-              <item name="pc" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="cycleCountHeader" type="462c0819:PsiDirectoryNode" />
-              <item name="domain" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-              <item name="huaheng" type="462c0819:PsiDirectoryNode" />
-              <item name="pc" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="cycleCountHeader" type="462c0819:PsiDirectoryNode" />
-              <item name="mapper" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-              <item name="huaheng" type="462c0819:PsiDirectoryNode" />
-              <item name="pc" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="cycleCountHeader" type="462c0819:PsiDirectoryNode" />
-              <item name="service" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-              <item name="huaheng" type="462c0819:PsiDirectoryNode" />
-              <item name="pc" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="inventoryDetail" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-              <item name="huaheng" type="462c0819:PsiDirectoryNode" />
-              <item name="pc" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="inventoryDetail" type="462c0819:PsiDirectoryNode" />
-              <item name="controller" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="com" type="462c0819:PsiDirectoryNode" />
-              <item name="huaheng" type="462c0819:PsiDirectoryNode" />
-              <item name="pc" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="inventoryDetail" type="462c0819:PsiDirectoryNode" />
-              <item name="service" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="resources" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="resources" type="462c0819:PsiDirectoryNode" />
-              <item name="templates" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="resources" type="462c0819:PsiDirectoryNode" />
-              <item name="templates" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="resources" type="462c0819:PsiDirectoryNode" />
-              <item name="templates" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="adjustDetail" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="resources" type="462c0819:PsiDirectoryNode" />
-              <item name="templates" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="adjustHeader" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="resources" type="462c0819:PsiDirectoryNode" />
-              <item name="templates" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="cycleCountDetail" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="resources" type="462c0819:PsiDirectoryNode" />
-              <item name="templates" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="cycleCountHeader" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="resources" type="462c0819:PsiDirectoryNode" />
-              <item name="templates" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="inventoryDetail" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
-              <item name="wms2" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="resources" type="462c0819:PsiDirectoryNode" />
-              <item name="templates" type="462c0819:PsiDirectoryNode" />
-              <item name="inventory" type="462c0819:PsiDirectoryNode" />
-              <item name="inventoryHeader" type="462c0819:PsiDirectoryNode" />
-            </path>
-          </expand>
-          <select />
-        </subPane>
-      </pane>
-      <pane id="PackagesPane" />
-    </panes>
   </component>
+  <component name="ProjectId" id="1QOzUtfkdeRmYuw3MIDHXXMLsFH" />
   <component name="PropertiesComponent">
-    <property name="ASKED_ADD_EXTERNAL_FILES" value="true" />
     <property name="DefaultHtmlFileTemplate" value="HTML File" />
-    <property name="ExpandSpringBootJavaOptionsPanel" value="true" />
-    <property name="JavaScriptWeakerCompletionTypeGuess" value="true" />
     <property name="RequestMappingsPanelOrder0" value="0" />
     <property name="RequestMappingsPanelOrder1" value="1" />
     <property name="RequestMappingsPanelWidth0" value="75" />
     <property name="RequestMappingsPanelWidth1" value="75" />
-    <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
     <property name="WebServerToolWindowFactoryState" value="false" />
     <property name="aspect.path.notification.shown" value="true" />
-    <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1567684191959" />
-    <property name="last_opened_file_path" value="$PROJECT_DIR$/../web_cms" />
-    <property name="list.type.of.created.stylesheet" value="CSS" />
+    <property name="full.screen.before.presentation.mode" value="false" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/../WMSV1" />
     <property name="node.js.detected.package.eslint" value="true" />
+    <property name="node.js.detected.package.tslint" value="true" />
     <property name="node.js.path.for.package.eslint" value="project" />
     <property name="node.js.path.for.package.tslint" value="project" />
     <property name="node.js.selected.package.eslint" value="(autodetect)" />
     <property name="node.js.selected.package.tslint" value="(autodetect)" />
-    <property name="nodejs_package_manager_path" value="npm" />
-    <property name="settings.editor.selected.configurable" value="Settings.JavaScript" />
+    <property name="run.code.analysis.last.selected.profile" value="pProject Default" />
+    <property name="settings.editor.selected.configurable" value="reference.settingsdialog.IDE.editor.colors.Console Font" />
   </component>
   <component name="RunDashboard">
-    <option name="configurationTypes">
-      <set>
-        <option value="SpringBootApplicationConfigurationType" />
-      </set>
-    </option>
     <option name="ruleStates">
       <list>
         <RuleState>
@@ -572,11 +131,32 @@
         </RuleState>
       </list>
     </option>
-    <option name="contentProportion" value="0.027285129" />
   </component>
-  <component name="RunManager">
-    <configuration name="HuaHengApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
-      <module name="wms2" />
+  <component name="RunManager" selected="Spring Boot.HuaHengApplication">
+    <configuration name="ServiceTest.sendSimpleMail" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+      <module name="huaheng" />
+      <extension name="coverage">
+        <pattern>
+          <option name="PATTERN" value="com.huaheng.test.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <option name="PACKAGE_NAME" value="com.huaheng.test" />
+      <option name="MAIN_CLASS_NAME" value="com.huaheng.test.ServiceTest" />
+      <option name="METHOD_NAME" value="sendSimpleMail" />
+      <option name="TEST_OBJECT" value="method" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration name="HuaHengApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true">
+      <module name="huaheng" />
+      <extension name="coverage">
+        <pattern>
+          <option name="PATTERN" value="com.huaheng.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
       <option name="SPRING_BOOT_MAIN_CLASS" value="com.huaheng.HuaHengApplication" />
       <option name="ALTERNATIVE_JRE_PATH" />
       <option name="UPDATE_ACTION_UPDATE_POLICY" value="UpdateClassesAndResources" />
@@ -585,13 +165,27 @@
         <option name="Make" enabled="true" />
       </method>
     </configuration>
+    <list>
+      <item itemvalue="JUnit.ServiceTest.sendSimpleMail" />
+      <item itemvalue="Spring Boot.HuaHengApplication" />
+    </list>
+    <recent_temporary>
+      <list>
+        <item itemvalue="Spring Boot.HuaHengApplication" />
+        <item itemvalue="JUnit.ServiceTest.sendSimpleMail" />
+      </list>
+    </recent_temporary>
   </component>
   <component name="ServiceViewManager">
     <option name="allServicesViewState">
       <serviceView>
-        <option name="contentProportion" value="0.17857143" />
         <treeState>
-          <expand />
+          <expand>
+            <path>
+              <item name="services root" type="e789fda9:ObjectUtils$Sentinel" />
+              <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@20dd4d1b" type="7427dc5b:ServiceModel$ServiceGroupNode" />
+            </path>
+          </expand>
           <select />
         </treeState>
       </serviceView>
@@ -602,160 +196,56 @@
   </component>
   <component name="TaskManager">
     <task active="true" id="Default" summary="Default task">
-      <changelist id="4d9bac65-d8f6-4ced-8855-0db48f39a5f2" name="Default Changelist" comment="" />
-      <created>1566977677142</created>
+      <changelist id="baeae966-16bb-4f97-a411-22fe5a65cefd" name="Default Changelist" comment="" />
+      <created>1567656449978</created>
       <option name="number" value="Default" />
       <option name="presentableId" value="Default" />
-      <updated>1566977677142</updated>
-      <workItem from="1566977678336" duration="306000" />
-      <workItem from="1566978429560" duration="9246000" />
-      <workItem from="1567038752582" duration="12361000" />
-      <workItem from="1567057373550" duration="15293000" />
-      <workItem from="1567125196953" duration="16752000" />
-      <workItem from="1567643852002" duration="245000" />
+      <updated>1567656449978</updated>
+      <workItem from="1567656451211" duration="5104000" />
+      <workItem from="1567668214629" duration="1168000" />
+      <workItem from="1567669746535" duration="268000" />
+      <workItem from="1567670126125" duration="31000" />
+      <workItem from="1567670171788" duration="46000" />
+      <workItem from="1567670233410" duration="1528000" />
+      <workItem from="1567730330932" duration="8838000" />
+      <workItem from="1567741769966" duration="1528000" />
+      <workItem from="1567989403996" duration="45000" />
+      <workItem from="1567989504844" duration="67000" />
+      <workItem from="1567993387653" duration="1586000" />
+      <workItem from="1567998341358" duration="83000" />
+      <workItem from="1568001742660" duration="15312000" />
+      <workItem from="1568025180033" duration="84000" />
+      <workItem from="1568026322123" duration="15000" />
+      <workItem from="1568082327549" duration="3389000" />
+      <workItem from="1568094783772" duration="3618000" />
+      <workItem from="1568102171954" duration="179000" />
+      <workItem from="1568102802104" duration="132000" />
+      <workItem from="1568108585629" duration="1883000" />
     </task>
-    <task id="LOCAL-00001" summary="入库单添加时添加流程标记,审核入库单">
-      <created>1566983055587</created>
+    <task id="LOCAL-00001" summary="修改添加物料时使用物料类别生成物料编码">
+      <created>1567664306836</created>
       <option name="number" value="00001" />
       <option name="presentableId" value="LOCAL-00001" />
       <option name="project" value="LOCAL" />
-      <updated>1566983055587</updated>
+      <updated>1567664306836</updated>
     </task>
-    <task id="LOCAL-00002" summary="添加入库单历史">
-      <created>1566987011007</created>
+    <task id="LOCAL-00002" summary="修改添加物料时使用物料类别生成物料编码">
+      <created>1567936901056</created>
       <option name="number" value="00002" />
       <option name="presentableId" value="LOCAL-00002" />
       <option name="project" value="LOCAL" />
-      <updated>1566987011007</updated>
+      <updated>1567936901056</updated>
     </task>
-    <task id="LOCAL-00003" summary="修复入库历史controller冲突">
-      <created>1567039165473</created>
+    <task id="LOCAL-00003" summary="修改质检页面、添加完成质检">
+      <created>1568025230030</created>
       <option name="number" value="00003" />
       <option name="presentableId" value="LOCAL-00003" />
       <option name="project" value="LOCAL" />
-      <updated>1567039165473</updated>
-    </task>
-    <task id="LOCAL-00004" summary="添加物料类别">
-      <created>1567047135508</created>
-      <option name="number" value="00004" />
-      <option name="presentableId" value="LOCAL-00004" />
-      <option name="project" value="LOCAL" />
-      <updated>1567047135508</updated>
-    </task>
-    <task id="LOCAL-00005" summary="添加系统参数配置">
-      <created>1567065008303</created>
-      <option name="number" value="00005" />
-      <option name="presentableId" value="LOCAL-00005" />
-      <option name="project" value="LOCAL" />
-      <updated>1567065008303</updated>
-    </task>
-    <task id="LOCAL-00006" summary="删除入库单">
-      <created>1567065196899</created>
-      <option name="number" value="00006" />
-      <option name="presentableId" value="LOCAL-00006" />
-      <option name="project" value="LOCAL" />
-      <updated>1567065196899</updated>
-    </task>
-    <task id="LOCAL-00007" summary="自动生成盘点首选项表">
-      <created>1567068662565</created>
-      <option name="number" value="00007" />
-      <option name="presentableId" value="LOCAL-00007" />
-      <option name="project" value="LOCAL" />
-      <updated>1567068662565</updated>
-    </task>
-    <task id="LOCAL-00008" summary="添加逻辑删除配置">
-      <created>1567069834248</created>
-      <option name="number" value="00008" />
-      <option name="presentableId" value="LOCAL-00008" />
-      <option name="project" value="LOCAL" />
-      <updated>1567069834248</updated>
-    </task>
-    <task id="LOCAL-00009" summary="出库任务完成。新增allocationId字段">
-      <created>1567672551433</created>
-      <option name="number" value="00009" />
-      <option name="presentableId" value="LOCAL-00009" />
-      <option name="project" value="LOCAL" />
-      <updated>1567672551433</updated>
+      <updated>1568025230030</updated>
     </task>
-    <option name="localTasksCounter" value="10" />
+    <option name="localTasksCounter" value="4" />
     <servers />
   </component>
-  <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="22177000" />
-  </component>
-  <component name="ToolWindowManager">
-    <frame x="-6" y="0" width="1547" height="830" extended-state="0" />
-    <editor active="true" />
-    <layout>
-      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.25453323" />
-      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
-      <window_info id="Designer" order="2" />
-      <window_info id="Image Layers" order="3" />
-      <window_info id="Capture Tool" order="4" />
-      <window_info id="UI Designer" order="5" />
-      <window_info id="Favorites" order="6" side_tool="true" />
-      <window_info id="Web" order="7" side_tool="true" />
-      <window_info anchor="bottom" id="Message" order="0" />
-      <window_info anchor="bottom" id="Find" order="1" weight="0.3286119" />
-      <window_info anchor="bottom" id="Run" order="2" />
-      <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
-      <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
-      <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
-      <window_info anchor="bottom" id="TODO" order="6" />
-      <window_info anchor="bottom" id="Spring" order="7" />
-      <window_info anchor="bottom" id="Terminal" order="8" />
-      <window_info anchor="bottom" id="Docker" order="9" show_stripe_button="false" />
-      <window_info anchor="bottom" id="Event Log" order="10" sideWeight="0.5013405" side_tool="true" weight="0.2719547" />
-      <window_info anchor="bottom" id="Messages" order="11" weight="0.042979944" />
-      <window_info anchor="bottom" id="Java Enterprise" order="12" />
-      <window_info anchor="bottom" id="Database Changes" order="13" weight="0.3286119" />
-      <window_info anchor="bottom" id="Version Control" order="14" weight="0.15864022" />
-      <window_info active="true" anchor="bottom" id="Run Dashboard" order="15" sideWeight="0.49865952" visible="true" weight="0.16905445" />
-      <window_info anchor="bottom" id="MyBatis Log" order="16" />
-      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
-      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
-      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
-      <window_info anchor="right" id="Maven" order="3" />
-      <window_info anchor="right" id="Palette" order="4" />
-      <window_info anchor="right" id="Capture Analysis" order="5" />
-      <window_info anchor="right" id="Database" order="6" />
-      <window_info anchor="right" id="Palette&#9;" order="7" />
-      <window_info anchor="right" id="Theme Preview" order="8" />
-      <window_info anchor="right" id="Bean Validation" order="9" />
-    </layout>
-    <layout-to-restore>
-      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.26340482" />
-      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
-      <window_info id="Web" order="2" side_tool="true" />
-      <window_info id="Designer" order="3" />
-      <window_info id="UI Designer" order="4" />
-      <window_info id="Favorites" order="5" side_tool="true" />
-      <window_info anchor="bottom" id="Message" order="0" />
-      <window_info anchor="bottom" id="Find" order="1" weight="0.3286119" />
-      <window_info anchor="bottom" id="Run" order="2" />
-      <window_info anchor="bottom" id="Debug" order="3" weight="0.29036826" />
-      <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
-      <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
-      <window_info anchor="bottom" id="TODO" order="6" />
-      <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
-      <window_info anchor="bottom" id="Version Control" order="8" weight="0.45042494" />
-      <window_info anchor="bottom" id="Database Changes" order="9" />
-      <window_info anchor="bottom" id="Spring" order="10" />
-      <window_info anchor="bottom" id="MyBatis Log" order="11" weight="0.3286119" />
-      <window_info anchor="bottom" id="Event Log" order="12" sideWeight="0.50067025" side_tool="true" weight="0.23796034" />
-      <window_info anchor="bottom" id="Messages" order="13" weight="0.12606232" />
-      <window_info anchor="bottom" id="Java Enterprise" order="14" />
-      <window_info active="true" anchor="bottom" id="Run Dashboard" order="15" sideWeight="0.49932975" visible="true" weight="0.18838526" />
-      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
-      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
-      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
-      <window_info anchor="right" id="Palette" order="3" />
-      <window_info anchor="right" id="Database" order="4" />
-      <window_info anchor="right" id="Maven" order="5" weight="0.097184986" />
-      <window_info anchor="right" id="Bean Validation" order="6" />
-      <window_info anchor="right" id="Palette&#9;" order="7" />
-    </layout-to-restore>
-  </component>
   <component name="TypeScriptGeneratedFilesManager">
     <option name="version" value="1" />
   </component>
@@ -765,373 +255,37 @@
         <entry key="MAIN">
           <value>
             <State>
-              <option name="RECENTLY_FILTERED_USER_GROUPS">
-                <collection />
-              </option>
-              <option name="RECENTLY_FILTERED_BRANCH_GROUPS">
-                <collection />
-              </option>
-              <option name="COLUMN_ORDER">
-                <list>
-                  <option value="0" />
-                  <option value="1" />
-                  <option value="2" />
-                  <option value="3" />
-                </list>
-              </option>
+              <option name="COLUMN_ORDER" />
             </State>
           </value>
         </entry>
       </map>
     </option>
-    <option name="RECENT_FILTERS">
-      <map>
-        <entry key="Branch">
-          <value>
-            <list />
-          </value>
-        </entry>
-        <entry key="User">
-          <value>
-            <list />
-          </value>
-        </entry>
-      </map>
-    </option>
   </component>
   <component name="VcsManagerConfiguration">
-    <MESSAGE value="盘点明细页面" />
-    <MESSAGE value="入库单添加时添加流程标记,审核入库单" />
-    <MESSAGE value="添加入库单历史" />
-    <MESSAGE value="修复入库历史controller冲突" />
-    <MESSAGE value="添加物料类别" />
-    <MESSAGE value="添加系统参数配置" />
-    <MESSAGE value="删除入库单" />
-    <MESSAGE value="自动生成盘点首选项表" />
-    <MESSAGE value="添加逻辑删除配置" />
-    <MESSAGE value="库存和任务移库相关" />
-    <MESSAGE value="库存移库生成和完成逻辑" />
-    <MESSAGE value="xml" />
-    <MESSAGE value="出库任务完成。新增allocationId字段" />
-    <option name="LAST_COMMIT_MESSAGE" value="出库任务完成。新增allocationId字段" />
+    <MESSAGE value="修改添加物料时使用物料类别生成物料编码" />
+    <MESSAGE value="修改质检页面、添加完成质检" />
+    <option name="LAST_COMMIT_MESSAGE" value="修改质检页面、添加完成质检" />
   </component>
   <component name="XDebuggerManager">
     <breakpoint-manager>
       <breakpoints>
-        <line-breakpoint type="java-line">
-          <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/mapper/CycleCountHeaderMapper.java</url>
-          <line>5</line>
-          <properties />
-          <option name="timeStamp" value="1" />
-        </line-breakpoint>
-        <line-breakpoint type="java-line">
-          <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/statusFlow/controller/StatusFlowDetailController.java</url>
-          <line>60</line>
-          <properties />
-          <option name="timeStamp" value="4" />
-        </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeaderHistory/service/ReceiptHeaderHistoryService.java</url>
-          <line>49</line>
-          <properties />
-          <option name="timeStamp" value="16" />
+          <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkDetail/controller/CheckDetailController.java</url>
+          <line>152</line>
+          <option name="timeStamp" value="6" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java</url>
-          <line>92</line>
-          <properties />
-          <option name="timeStamp" value="24" />
+          <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkDetail/controller/CheckDetailController.java</url>
+          <line>154</line>
+          <option name="timeStamp" value="8" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/containerType/service/ContainerTypeServiceImpl.java</url>
-          <line>31</line>
-          <properties />
-          <option name="timeStamp" value="26" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java</url>
-          <line>48</line>
-          <properties />
-          <option name="timeStamp" value="37" />
+          <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkDetail/service/CheckDetailService.java</url>
+          <line>45</line>
+          <option name="timeStamp" value="9" />
         </line-breakpoint>
       </breakpoints>
     </breakpoint-manager>
-    <watches-manager>
-      <configuration name="SpringBootApplicationConfigurationType">
-        <watch expression="DataUtils.getInteger(map.get(&quot;receiptId&quot;))" language="JAVA" />
-      </configuration>
-    </watches-manager>
-  </component>
-  <component name="debuggerHistoryManager">
-    <expressions id="watch">
-      <expression>
-        <expression-string>DataUtils.getInteger(map.get(&quot;receiptId&quot;))</expression-string>
-        <language-id>JAVA</language-id>
-        <evaluation-mode>EXPRESSION</evaluation-mode>
-      </expression>
-    </expressions>
-  </component>
-  <component name="editorHistoryManager">
-    <entry file="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-extension/3.1.2/mybatis-plus-extension-3.1.2.jar!/com/baomidou/mybatisplus/extension/service/IService.class">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="149">
-          <caret line="53" column="12" selection-start-line="53" selection-start-column="12" selection-end-line="53" selection-end-column="12" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/task/TaskHeaderMapper.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="146">
-          <caret line="45" column="31" selection-start-line="45" selection-start-column="16" selection-end-line="45" selection-end-column="31" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/templates/task/task/task.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1444">
-          <caret line="76" column="89" selection-start-line="76" selection-start-column="70" selection-end-line="76" selection-end-column="89" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/pom.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="532">
-          <caret line="28" column="8" selection-start-line="28" selection-start-column="8" selection-end-line="28" selection-end-column="51" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailServiceImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-66">
-          <caret line="238" column="16" selection-start-line="238" selection-start-column="16" selection-end-line="238" selection-end-column="16" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailService.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="209">
-          <caret line="13" column="9" selection-start-line="13" selection-start-column="9" selection-end-line="13" selection-end-column="9" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/templates/task/taskHeader/taskHeader.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="214">
-          <caret line="236" column="64" selection-start-line="236" selection-start-column="64" selection-end-line="236" selection-end-column="64" />
-          <folding>
-            <element signature="n#style#0;n#i#0;n#a#0;n#!!top" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/mapper/TaskHeaderMapper.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="114">
-          <caret line="11" column="30" selection-start-line="11" selection-start-column="30" selection-end-line="11" selection-end-column="30" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/controller/ReceiptContainerHeaderController.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="323">
-          <caret line="136" column="42" selection-start-line="136" selection-start-column="42" selection-end-line="136" selection-end-column="42" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="542">
-          <caret line="117" column="45" lean-forward="true" selection-start-line="117" selection-start-column="45" selection-end-line="117" selection-end-column="45" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="209">
-          <caret line="18" column="15" selection-start-line="18" selection-start-column="15" selection-end-line="18" selection-end-column="15" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/domain/InventoryTransaction.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="226">
-          <caret line="95" column="19" selection-start-line="95" selection-start-column="12" selection-end-line="95" selection-end-column="19" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/config/ContainerMapper.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="490">
-          <caret line="50" column="4" selection-start-line="50" selection-start-column="4" selection-end-line="50" selection-end-column="4" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/mapper/ContainerMapper.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="171">
-          <caret line="14" column="9" selection-start-line="14" selection-start-column="9" selection-end-line="14" selection-end-column="9" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="471">
-          <caret line="127" column="47" lean-forward="true" selection-start-line="127" selection-start-column="47" selection-end-line="127" selection-end-column="47" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/service/ContainerService.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="228">
-          <caret line="17" column="9" selection-start-line="17" selection-start-column="9" selection-end-line="17" selection-end-column="9" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskDetail/domain/TaskDetail.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="226">
-          <caret line="65" column="19" selection-start-line="65" selection-start-column="19" selection-end-line="65" selection-end-column="19" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderService.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="266">
-          <caret line="18" column="15" selection-start-line="18" selection-start-column="15" selection-end-line="18" selection-end-column="15" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="376">
-          <caret line="1089" column="13" lean-forward="true" selection-start-line="1089" selection-start-column="13" selection-end-line="1089" selection-end-column="13" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/5.1.5.RELEASE/spring-aop-5.1.5.RELEASE.jar!/org/springframework/aop/framework/adapter/AfterReturningAdviceInterceptor.class">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="109">
-          <caret line="24" selection-start-line="24" selection-end-line="24" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/5.1.5.RELEASE/spring-aop-5.1.5.RELEASE.jar!/org/springframework/aop/framework/ReflectiveMethodInvocation.class">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="89">
-          <caret line="69" selection-start-line="69" selection-end-line="69" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/5.1.5.RELEASE/spring-aop-5.1.5.RELEASE.jar!/org/springframework/aop/framework/CglibAopProxy.class">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="89">
-          <caret line="472" selection-start-line="472" selection-end-line="472" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/cycleCountHeader/cycleCountHeader.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="260">
-          <caret line="274" column="150" selection-start-line="274" selection-start-column="150" selection-end-line="274" selection-end-column="150" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="60">
-          <caret line="277" column="18" lean-forward="true" selection-start-line="277" selection-start-column="18" selection-end-line="277" selection-end-column="18" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="123">
-          <caret line="58" column="38" selection-start-line="58" selection-start-column="19" selection-end-line="58" selection-end-column="38" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://C:/Program Files/Java/jdk1.8.0_202/src.zip!/java/util/function/Predicate.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-177">
-          <caret line="39" column="31" lean-forward="true" selection-start-line="39" selection-start-column="31" selection-end-line="39" selection-end-column="31" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-5200">
-          <caret line="33" column="13" selection-start-line="33" selection-start-column="13" selection-end-line="33" selection-end-column="13" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-1328">
-          <caret line="24" column="13" selection-start-line="24" selection-start-column="13" selection-end-line="24" selection-end-column="13" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-688">
-          <caret line="108" column="44" lean-forward="true" selection-start-line="108" selection-start-column="44" selection-end-line="108" selection-end-column="44" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentHeaderHistory/controller/ShipmentHeaderHistoryController.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-1730">
-          <caret line="37" column="13" selection-start-line="37" selection-start-column="13" selection-end-line="37" selection-end-column="13" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/5.1.5.RELEASE/spring-core-5.1.5.RELEASE.jar!/org/springframework/cglib/proxy/MethodProxy.class">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="89">
-          <caret line="102" selection-start-line="102" selection-end-line="102" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailService.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="147">
-          <caret line="11" column="15" selection-start-line="11" selection-start-column="15" selection-end-line="11" selection-end-column="15" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="150">
-          <caret line="145" selection-start-line="145" selection-end-line="145" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="4104">
-          <caret line="335" column="20" selection-start-line="335" selection-start-column="20" selection-end-line="335" selection-end-column="20" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/cycleCountDetail/add.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="740">
-          <caret line="291" lean-forward="true" selection-start-line="291" selection-end-line="291" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="86">
-          <caret line="43" column="89" selection-start-line="43" selection-start-column="69" selection-end-line="43" selection-end-column="89" />
-        </state>
-      </provider>
-    </entry>
   </component>
 </project>
\ No newline at end of file
diff --git a/src/main/java/com/huaheng/pc/check/checkDetail/controller/CheckDetailController.java b/src/main/java/com/huaheng/pc/check/checkDetail/controller/CheckDetailController.java
index e705de3..a0acd74 100644
--- a/src/main/java/com/huaheng/pc/check/checkDetail/controller/CheckDetailController.java
+++ b/src/main/java/com/huaheng/pc/check/checkDetail/controller/CheckDetailController.java
@@ -148,6 +148,7 @@ public class CheckDetailController extends BaseController {
     @RequiresPermissions("check:checkDetail:complete")
     @Log(title = "质检-质检详情 ",operating = "质检详情删除", action = BusinessType.DELETE)
     @PostMapping("/complete")
+    @ResponseBody
     public AjaxResult complete(@ApiParam(name="质检明细id",value="id")Integer id,
                                @ApiParam(name="库存状态",value="inventorySts",example="good,bad")String inventorySts,
                                @ApiParam(name = "数量",value = "qty",example = "10,20") String qty) {
diff --git a/src/main/java/com/huaheng/pc/check/checkDetail/service/CheckDetailService.java b/src/main/java/com/huaheng/pc/check/checkDetail/service/CheckDetailService.java
index b525227..c9c9eb3 100644
--- a/src/main/java/com/huaheng/pc/check/checkDetail/service/CheckDetailService.java
+++ b/src/main/java/com/huaheng/pc/check/checkDetail/service/CheckDetailService.java
@@ -95,7 +95,9 @@ public class CheckDetailService extends ServiceImpl<CheckDetailMapper, CheckDeta
             CheckHeader checkHeader = new CheckHeader();
             checkHeader.setId(checkDetail.getCheckHeaderId());
             checkHeader.setStatus("20");
-            checkHeaderService.updateById(checkHeader);
+            if (!checkHeaderService.updateById(checkHeader)){
+                throw new ServiceException("更新质检头表发生错误");
+            }
         }
         return AjaxResult.success("质检完成");
     }
diff --git a/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java b/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java
index 37aa6d5..0c3db2e 100644
--- a/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java
+++ b/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java
@@ -88,6 +88,7 @@ public class CheckingRegisterController extends BaseController {
                         CheckingRegister::getInventorySts, checkingRegister.getInventorySts())
                 .eq(StringUtils.isNotEmpty(checkingRegister.getCheckBy()),
                         CheckingRegister::getCheckAt, checkingRegister.getCheckAt())
+                .orderByDesc(CheckingRegister::getCheckAt)
                 .orderByDesc(CheckingRegister::getReceiptDetailId);
 
         if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
diff --git a/src/main/java/com/huaheng/pc/config/wave/domain/Wave.java b/src/main/java/com/huaheng/pc/config/wave/domain/Wave.java
index 6f8dea0..f397cc3 100644
--- a/src/main/java/com/huaheng/pc/config/wave/domain/Wave.java
+++ b/src/main/java/com/huaheng/pc/config/wave/domain/Wave.java
@@ -118,14 +118,14 @@ public class Wave implements Serializable {
      */
     @TableField(value = "locked")
     @ApiModelProperty(value="是否锁定")
-    private Integer locked;
+    private Boolean locked;
 
     /**
      * 是否需要补货
      */
     @TableField(value = "replenishmentReqd")
     @ApiModelProperty(value="是否需要补货")
-    private Integer replenishmentReqd;
+    private Boolean replenishmentReqd;
 
     /**
      * 信息编码
diff --git a/src/main/java/com/huaheng/pc/config/waveMaster/domain/WaveMaster.java b/src/main/java/com/huaheng/pc/config/waveMaster/domain/WaveMaster.java
index 1fd6dc4..746d19a 100644
--- a/src/main/java/com/huaheng/pc/config/waveMaster/domain/WaveMaster.java
+++ b/src/main/java/com/huaheng/pc/config/waveMaster/domain/WaveMaster.java
@@ -146,7 +146,7 @@ public class WaveMaster implements Serializable {
      */
     @TableField(value = "needReplenishment")
     @ApiModelProperty(value="是否补货")
-    private Integer needReplenishment;
+    private Boolean needReplenishment;
 
     /**
      * 活动单补货分配规则
diff --git a/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java b/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java
index 446356f..79975d9 100644
--- a/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java
+++ b/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java
@@ -226,4 +226,19 @@ public class ReceiptHeaderController extends BaseController {
     {
         return prefix + "/receiving";
     }
+
+    /**
+     * 入库质检
+     */
+    @ApiOperation(value="入库质检", notes="入库质检", httpMethod = "POST")
+    @RequiresPermissions("receipt:receiptHeader:check")
+    @Log(title = "入库-入库单质检",operating = "入库质检", action = BusinessType.OTHER)
+    @PostMapping("/remove")
+    @ResponseBody
+    public AjaxResult check(@ApiParam(name = "id", value = "入库头表id")Integer id){
+        if (StringUtils.isNull(id)){
+            return AjaxResult.error("id为空");
+        }
+        return receiptHeaderService.add(id);
+    }
 }
diff --git a/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java b/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java
index 0994951..8409b27 100644
--- a/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java
+++ b/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java
@@ -6,6 +6,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.huaheng.common.exception.service.ServiceException;
 import com.huaheng.common.utils.security.ShiroUtils;
 import com.huaheng.framework.web.domain.AjaxResult;
+import com.huaheng.pc.check.checkDetail.domain.CheckDetail;
+import com.huaheng.pc.check.checkDetail.service.CheckDetailService;
+import com.huaheng.pc.check.checkHeader.domain.CheckHeader;
+import com.huaheng.pc.check.checkHeader.service.CheckHeaderService;
 import com.huaheng.pc.config.receiptType.domain.ReceiptType;
 import com.huaheng.pc.config.receiptType.service.ReceiptTypeService;
 import com.huaheng.pc.config.statusFlow.domain.StatusFlowDetail;
@@ -30,7 +34,16 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei
     private ReceiptTypeService receiptTypeService;
     @Resource
     private ReceiptDetailService receiptDetailService;
+    @Resource
+    private CheckHeaderService checkHeaderService;
+    @Resource
+    private CheckDetailService checkDetailService;
 
+    /**
+     * 保存入库单
+     * @param receiptHeader
+     * @return
+     */
     public AjaxResult saveReceiptHeader(ReceiptHeader receiptHeader){
         LambdaQueryWrapper<ReceiptType> lambdaQueryWrapper = Wrappers.lambdaQuery();
         lambdaQueryWrapper.eq(ReceiptType::getCode, receiptHeader.getReceiptType());
@@ -54,6 +67,11 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei
         return AjaxResult.toAjax(this.save(receiptHeader));
     }
 
+    /**
+     * 生成单号
+     * @param receiptType
+     * @return
+     */
     public String createCode(String receiptType) {
         String code = null;
         Date now = new Date();
@@ -118,4 +136,61 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei
         receiptDetailService.updateReceiptHeaderLastStatus(id);
         return AjaxResult.success("预约成功");
     }
+
+    /**
+     * 入库质检
+     */
+    public AjaxResult check(Integer id){
+
+        ReceiptHeader receiptHeader = this.getById(id);
+        LambdaQueryWrapper<ReceiptDetail> receiptDetailLambda = Wrappers.lambdaQuery();
+        receiptDetailLambda.eq(ReceiptDetail::getReceiptId, id);
+        List<ReceiptDetail> receiptDetails = receiptDetailService.list(receiptDetailLambda);
+
+        //创建质检头表
+        CheckHeader checkHeader = new CheckHeader();
+        checkHeader.setCode(receiptHeader.getCode());
+        checkHeader.setType("100");
+        checkHeader.setWarehouseCode(ShiroUtils.getWarehouseCode());
+        checkHeader.setReferCode(receiptHeader.getReferCode());
+        checkHeader.setEnable(1);
+        checkHeader.setStatus("0");
+        checkHeader.setCreatedBy(ShiroUtils.getLoginName());
+        checkHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
+
+        if (!checkHeaderService.save(checkHeader)){
+            throw new ServiceException("添加质检头表发送错误");
+        }
+
+        //查询保存后的质检头表
+        LambdaQueryWrapper<CheckHeader> checkHeaderLambda = Wrappers.lambdaQuery(checkHeader);
+        checkHeader = checkHeaderService.getOne(checkHeaderLambda);
+
+        for (ReceiptDetail receiptDetail : receiptDetails) {
+            CheckDetail checkDetail = new CheckDetail();
+            checkDetail.setCheckHeaderId(checkHeader.getId());
+            checkDetail.setWarehouseCode(ShiroUtils.getWarehouseCode());
+            checkDetail.setCheckCode(checkHeader.getCode());
+            checkDetail.setReceiptDetailId(receiptDetail.getId());
+            checkDetail.setReceiptCode(receiptDetail.getReceiptCode());
+            checkDetail.setReferCode(checkHeader.getReferCode());
+            checkDetail.setMaterialCode(receiptDetail.getMaterialCode());
+            checkDetail.setMaterialName(receiptDetail.getMaterialName());
+            checkDetail.setMaterialSpec(receiptDetail.getMaterialSpec());
+            checkDetail.setMaterialUnit(receiptDetail.getMaterialUnit());
+            checkDetail.setCompanyCode(receiptDetail.getCompanyCode());
+            checkDetail.setInventorySts(receiptDetail.getInventorySts());
+            checkDetail.setStatus("0");
+            checkDetail.setQty(receiptDetail.getTotalQty());
+            checkDetail.setCheckBy(ShiroUtils.getLoginName());
+            checkDetail.setCreatedBy(ShiroUtils.getLoginName());
+            checkDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
+            if ( !checkDetailService.save(checkDetail) ){
+                throw new ServiceException("保存质检明细失败");
+            }
+        }
+
+
+        return AjaxResult.success("");
+    }
 }
diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java
index d6d6b4c..e0dfcad 100644
--- a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java
@@ -248,6 +248,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             taskDetail.setWarehouseCode(task.getWarehouseCode());
             taskDetail.setCompanyCode(task.getCompanyCode());
             taskDetail.setTaskType(task.getTaskType());
+            taskDetail.setToInventoryId(shipmentContainerDetail.getInventoryId());
             taskDetail.setAllocationId(shipmentContainerDetail.getId());
             taskDetail.setBillCode(shipmentContainerDetail.getShipmentCode());
             taskDetail.setBillDetailId(shipmentContainerDetail.getShipmentDetailId());
@@ -411,7 +412,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
 
 
     /**
-     *完成任务
+     *完成入库任务
      */
     @Override
     @Transactional
@@ -510,30 +511,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 if ( !taskDetailService.update(taskDetail, lambdaUpdateWrapper)){
                     throw new ServiceException("修改入库单明细失败");
                 }
-//                //修改入库单的状态
-//                ReceiptHeader receiptHeader = new ReceiptHeader();
-//                receiptHeader.setFirstStatus(100);
-//                receiptHeader.setLastStatus(100);
-//                LambdaUpdateWrapper<ReceiptHeader> receiptHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate();
-//                receiptHeaderLambdaUpdateWrapper.eq(ReceiptHeader::getId, DataUtils.getInteger(map.get("receiptId")));
-//                if (!receiptHeaderService.update(receiptHeader, receiptHeaderLambdaUpdateWrapper)){
-//                    throw new ServiceException("修改入库单失败");
-//                }
-//                //修改任务明细的状态为完成
-//                TaskDetail taskDetail = new TaskDetail();
-//                taskDetail.setStatus(100);
-//                taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
-//                taskDetail.setAgingDate(new Date());   //入库时间
-//                LambdaUpdateWrapper<TaskDetail> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
-//                lambdaUpdateWrapper.eq(TaskDetail::getTaskId, DataUtils.getInteger(map.get("taskDetailId")));
-//                taskDetailService.update(taskDetail, lambdaUpdateWrapper);
-//                //修改入库单的状态
-//                ReceiptHeader receiptHeader =new ReceiptHeader();
-//                receiptHeader.setFirstStatus(100);
-//                receiptHeader.setLastStatus(100);
-//                LambdaUpdateWrapper<ReceiptHeader> receiptHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate();
-//                receiptHeaderLambdaUpdateWrapper.eq(ReceiptHeader::getId, DataUtils.getInteger(map.get("receiptId")));
-//                receiptHeaderService.update(receiptHeader, receiptHeaderLambdaUpdateWrapper);
 
                 //修改任务主表状态,因为立库任务表单头只对应一个货箱,表单详情的任务会同时完成
                 task.setStatus(100);
@@ -581,24 +558,24 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 }
 
                 //修改出库单明细
-                if (task.getInternalTaskType()==200){
-                    LambdaQueryWrapper<TaskDetail> taskDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
-                    taskDetailLambdaQueryWrapper.eq(TaskDetail::getTaskId,task.getId());
-                    List<TaskDetail> taskDetailList = taskDetailService.list(taskDetailLambdaQueryWrapper);
-
-                for (TaskDetail taskDeatails: taskDetailList) {
-                    LambdaQueryWrapper<ShipmentDetail> shipmentDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
-                    shipmentDetailLambdaQueryWrapper.eq(ShipmentDetail::getId,taskDeatails.getBillDetailId());
-
-                    ShipmentHeader shipmentHeader =new ShipmentHeader();
-                    shipmentHeader.setId(shipmentDetailService.getOne(shipmentDetailLambdaQueryWrapper).getShipmentId());
-                    shipmentHeader.setFirstStatus(100);
-                    shipmentHeader.setLastStatus(100);
-                    shipmentHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
-                    shipmentHeader.setLastUpdated(new Date());
-                    shipmentHeaderService.updateById(shipmentHeader);
-                }
-                }
+//                if (task.getInternalTaskType()==200){
+////                    LambdaQueryWrapper<TaskDetail> taskDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
+////                    taskDetailLambdaQueryWrapper.eq(TaskDetail::getTaskId,task.getId());
+////                    List<TaskDetail> taskDetailList = taskDetailService.list(taskDetailLambdaQueryWrapper);
+//
+////                for (TaskDetail taskDeatails: taskDetailList) {
+////                    LambdaQueryWrapper<ShipmentDetail> shipmentDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
+////                    shipmentDetailLambdaQueryWrapper.eq(ShipmentDetail::getId,taskDeatails.getBillDetailId());
+////
+////                    ShipmentHeader shipmentHeader =new ShipmentHeader();
+////                    shipmentHeader.setId(shipmentDetailService.getOne(shipmentDetailLambdaQueryWrapper).getShipmentId());
+////                    shipmentHeader.setFirstStatus(100);
+////                    shipmentHeader.setLastStatus(100);
+////                    shipmentHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
+////                    shipmentHeader.setLastUpdated(new Date());
+////                    shipmentHeaderService.updateById(shipmentHeader);
+////                }
+//                }
 
 
             }
@@ -1137,7 +1114,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 //设置子任务状态为已执行
                 taskDetail.setStatus(100);
                 taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
-                taskDetail.setLastUpdated(new Date());   //完成时间
+                taskDetail.setLastUpdated(new Date());//完成时间
                 taskDetailService.updateById(taskDetail);
                 //记录库存交易记录
                 InventoryTransaction inventoryTransaction = new InventoryTransaction();
@@ -1202,24 +1179,44 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             }
         }
         //设置出库货箱状态为拣货任务完成
-        ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail();
-        receiptContainerDetail.setStatus(30);
-        receiptContainerDetail.setLastUpdated(new Date());
-        receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
-        LambdaUpdateWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate();
-        receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getId,task.getAllocationHeadId());
-        if (! receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper)){
+        ShipmentContainerDetail shipmentContainerDetail = new ShipmentContainerDetail();
+        shipmentContainerDetail.setStatus(30);
+        shipmentContainerDetail.setLastUpdated(new Date());
+        shipmentContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
+        LambdaUpdateWrapper<ShipmentContainerDetail> shipmentContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate();
+        shipmentContainerDetailLambdaUpdateWrapper.eq(ShipmentContainerDetail::getId,task.getAllocationHeadId());
+        if (! shipmentContainerDetailService.update(shipmentContainerDetail, shipmentContainerDetailLambdaUpdateWrapper)){
             throw new ServiceException("更新组盘明细状态失败");
         }
     //设置出库货箱表头状态为拣货任务完成
-        ReceiptContainerHeader ContainerHeader = new ReceiptContainerHeader();
-        ContainerHeader.setStatus((short)30);
-        ContainerHeader.setLastUpdated(new Date());
-        ContainerHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
-        LambdaUpdateWrapper<ReceiptContainerHeader> receiptContainerHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate();
-        receiptContainerHeaderLambdaUpdateWrapper.eq(ReceiptContainerHeader::getId,task.getAllocationHeadId());
-        if (! receiptContainerHeaderService.update(ContainerHeader, receiptContainerHeaderLambdaUpdateWrapper))
+        ShipmentContainerHeader shipmentContainerHeader = new ShipmentContainerHeader();
+        shipmentContainerHeader.setStatus(30);
+        shipmentContainerHeader.setLastUpdated(new Date());
+        shipmentContainerHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
+        LambdaUpdateWrapper<ShipmentContainerHeader> shipmentContainerHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate();
+        shipmentContainerHeaderLambdaUpdateWrapper.eq(ShipmentContainerHeader::getId,task.getAllocationHeadId());
+        if (! shipmentContainerHeaderService.update(shipmentContainerHeader, shipmentContainerHeaderLambdaUpdateWrapper))
             throw new ServiceException("更新组盘头状态失败");
+
+
+                   //修改出库单状态
+                    LambdaQueryWrapper<TaskDetail> taskDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
+                    taskDetailLambdaQueryWrapper.eq(TaskDetail::getTaskId,task.getId());
+                    List<TaskDetail> taskDetailList = taskDetailService.list(taskDetailLambdaQueryWrapper);
+
+                for (TaskDetail taskDeatails: taskDetailList) {
+                    LambdaQueryWrapper<ShipmentDetail> shipmentDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
+                    shipmentDetailLambdaQueryWrapper.eq(ShipmentDetail::getId,taskDeatails.getBillDetailId());
+
+                    ShipmentHeader shipmentHeader =new ShipmentHeader();
+                    shipmentHeader.setId(shipmentDetailService.getOne(shipmentDetailLambdaQueryWrapper).getShipmentId());
+                    shipmentHeader.setFirstStatus(100);
+                    shipmentHeader.setLastStatus(100);
+                    shipmentHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
+                    shipmentHeader.setLastUpdated(new Date());
+                    shipmentHeaderService.updateById(shipmentHeader);
+                }
+
     }
 
 
diff --git a/src/main/resources/mybatis/config/WaveMapper.xml b/src/main/resources/mybatis/config/WaveMapper.xml
index 23fa520..dfead2a 100644
--- a/src/main/resources/mybatis/config/WaveMapper.xml
+++ b/src/main/resources/mybatis/config/WaveMapper.xml
@@ -17,8 +17,8 @@
     <result column="completedAt" jdbcType="TIMESTAMP" property="completedAt" />
     <result column="waveMode" jdbcType="VARCHAR" property="waveMode" />
     <result column="errorMessage" jdbcType="VARCHAR" property="errorMessage" />
-    <result column="locked" jdbcType="INTEGER" property="locked" />
-    <result column="replenishmentReqd" jdbcType="INTEGER" property="replenishmentReqd" />
+    <result column="locked" jdbcType="BIT" property="locked" />
+    <result column="replenishmentReqd" jdbcType="BIT" property="replenishmentReqd" />
     <result column="messageId" jdbcType="VARCHAR" property="messageId" />
     <result column="runBy" jdbcType="VARCHAR" property="runBy" />
     <result column="releasedBy" jdbcType="VARCHAR" property="releasedBy" />
diff --git a/src/main/resources/mybatis/config/WaveMasterMapper.xml b/src/main/resources/mybatis/config/WaveMasterMapper.xml
index c275431..19c16b9 100644
--- a/src/main/resources/mybatis/config/WaveMasterMapper.xml
+++ b/src/main/resources/mybatis/config/WaveMasterMapper.xml
@@ -21,7 +21,7 @@
     <result column="maxRplnQty" jdbcType="INTEGER" property="maxRplnQty" />
     <result column="groupingOrderBy" jdbcType="VARCHAR" property="groupingOrderBy" />
     <result column="ruleAssignmentCode" jdbcType="VARCHAR" property="ruleAssignmentCode" />
-    <result column="needReplenishment" jdbcType="INTEGER" property="needReplenishment" />
+    <result column="needReplenishment" jdbcType="BIT" property="needReplenishment" />
     <result column="rplnAllocationRule" jdbcType="VARCHAR" property="rplnAllocationRule" />
     <result column="rplnLocatingRule" jdbcType="VARCHAR" property="rplnLocatingRule" />
     <result column="created" jdbcType="TIMESTAMP" property="created" />
diff --git a/src/main/resources/templates/check/checkDetail/checkComplete.html b/src/main/resources/templates/check/checkDetail/checkComplete.html
index 32e50f2..967370c 100644
--- a/src/main/resources/templates/check/checkDetail/checkComplete.html
+++ b/src/main/resources/templates/check/checkDetail/checkComplete.html
@@ -66,23 +66,28 @@
             var tableValue;
             var inventorySts;
             var qty;
-            if ( $("#inventorySts0 option:selected").val() == ""){
-                inventorySts = $("#inventorySts0 option:selected").val()
+            if ( $("#inventorySts0 option:selected").val() != ""){
+                inventorySts = $("#inventorySts0 option:selected").val();
+                console.log(inventorySts);
             }
-            if ( $("#inventorySts1 option:selected").val() == ""){
-                inventorySts = ","+$("#inventorySts1 option:selected").val()
+            if ( $("#inventorySts1 option:selected").val() != ""){
+                inventorySts += ","+$("#inventorySts1 option:selected").val()
             }
-            if ( $("#inventorySts2 option:selected").val() == ""){
-                inventorySts = ","+$("#inventorySts2 option:selected").val()
+            if ( $("#inventorySts2 option:selected").val() != ""){
+                inventorySts += ","+$("#inventorySts2 option:selected").val()
+            }
+            if ( $("input[name='qty0']").val() != ""){
+                qty = $("input[name='qty0']").val();
+            }
+            if ( $("input[name='qty1']").val() != ""){
+                qty = ","+$("input[name='qty1']").val();
+            }
+            if ( $("input[name='qty2']").val() != ""){
+                qty = ","+$("input[name='qty2']").val();
             }
-                if ( $("input[name='qty"+i+"']").val() == ""){
-                    qty = $("input[name='qty"+i+"']").val()+","
-                }
 
-            tableValue = formValueReplace(tableValue, "id", [[${checkDetailId}]]);
-            tableValue = formValueReplace(tableValue, "inventorySts", inventorySts);
-            tableValue = formValueReplace(tableValue, "qty", qty);
-            $.operate.save(prefix + "/complete", $('#form-checkComplete-add').serialize());
+            tableValue= "id="+[[${id}]]+"&inventorySts="+inventorySts+"&qty="+qty;
+            $.operate.save(prefix + "/complete", tableValue);
         }
     });
 </script>
diff --git a/src/main/resources/templates/check/checkDetail/checkDetail.html b/src/main/resources/templates/check/checkDetail/checkDetail.html
index e996624..68d021f 100644
--- a/src/main/resources/templates/check/checkDetail/checkDetail.html
+++ b/src/main/resources/templates/check/checkDetail/checkDetail.html
@@ -151,7 +151,6 @@
                     align: 'center',
                     formatter: function(value, row, index) {
                         var actions = [];
-                        actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
                         if (row.status == 10) {
                             actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="complete(\'' + row.id + '\')"><i class="fa fa-edit"></i>质检完成</a> ');
                         }
diff --git a/src/main/resources/templates/check/checkHeader/checkHeader.html b/src/main/resources/templates/check/checkHeader/checkHeader.html
index 10e3de2..950e5f8 100644
--- a/src/main/resources/templates/check/checkHeader/checkHeader.html
+++ b/src/main/resources/templates/check/checkHeader/checkHeader.html
@@ -103,7 +103,14 @@
                     title : '质检类型',
                     align: 'center',
                     formatter: function(value, row, index) {
-                        return $.table.selectDictLabel(type, value);
+                            var actions = [];
+                            $.each(type, function(index, dict) {
+                                if (dict.remark == value) {
+                                    actions.push("<span class='badge badge-" + dict.listClass + "'>" + dict.dictLabel + "</span>");
+                                    return false;
+                                }
+                            });
+                            return actions.join('');
                     }
                 },
                 {
@@ -180,12 +187,7 @@
                     align: 'center',
                     formatter: function(value, row, index) {
                         var actions = [];
-                        if (row.status == 0){
-                            actions.push('<a id="table_edit" class="btn btn-success btn-xs ' + printFlag + '" href="#" onclick="verify(\'' + row.id + '\')"><i class="fa fa-print"></i>审核</a> ');
-                        }
-                        actions.push('<a id="table_edit" class="btn btn-success btn-xs ' + printFlag + '" href="#" onclick="complete(\'' + row.id + '\')"><i class="fa fa-print"></i>完成</a> ');
-                        actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')" ><i class="fa fa-edit"></i>编辑</a> ');
-                        // actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a>');
+                        actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a>');
                         return actions.join('');
                     }
                 }]
@@ -209,10 +211,6 @@
         $("#tabDetail").addClass("in active");
     }
 
-    function verify(id) {
-
-    }
-
     function queryParams(params) {
         return {
             type:[[${type}]]
diff --git a/src/main/resources/templates/check/checkingRegister/checkingRegister.html b/src/main/resources/templates/check/checkingRegister/checkingRegister.html
new file mode 100644
index 0000000..960e1eb
--- /dev/null
+++ b/src/main/resources/templates/check/checkingRegister/checkingRegister.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<meta charset="utf-8">
+<head th:include="include :: header"></head>
+<body class="gray-bg">
+<div class="container-div">
+    <div class="row">
+        <div class="col-sm-12 select-info">
+            <form id="company-form">
+                <div class="select-list">
+                    <ul>
+                        <li>
+                            质检单号:<input type="text" name="checkCode"/>
+                        </li>
+                        <li>
+                            入库单号:<input type="text" name="receiptCode"/>
+                        </li>
+                        <li>
+                            关联单号:<input type="text" name="referCode"/>
+                        </li>
+                        <li>
+                            关联行号:<input type="text" name="referLineId"/>
+                        </li>
+                        <li>
+                            物料编码:<input type="text" name="materialCode"/>
+                        </li>
+                        <li>
+                            物料名称:<input type="text" name="materialName"/>
+                        </li>
+                        <li>
+                            质检人:<input type="text" name="checkBy"/>
+                        </li>
+                        <li class="time">
+                            <label>创建时间: </label>
+                            <input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[createdBegin]"/>
+                            <span>-</span>
+                            <input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[createdEnd]"/>
+                        </li>
+                        <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-success btn-rounded btn-sm" onclick="$.table.exportExcel()" shiro:hasPermission="config:company:export"><i class="fa fa-download"></i>&nbsp;导出</a>-->
+                        </li>
+                    </ul>
+                </div>
+            </form>
+        </div>
+        <div class="btn-group hidden-xs" id="toolbar" role="group">
+            <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" shiro:hasPermission="check:checkingRegister:remove">
+                <i class="fa fa-trash-o"></i> 删除
+            </a>
+        </div>
+        <div class="col-sm-12 select-info">
+            <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table>
+        </div>
+    </div>
+</div>
+<div th:include="include :: footer"></div>
+<script th:inline="javascript">
+    var prefix = ctx + "check/checkingRegister";
+    var editFlag = [[${@permission.hasPermi('check:checkingRegister:edit')}]];
+    var removeFlag = [[${@permission.hasPermi('check:checkingRegister:remove')}]];
+    var inventorySts = [[${@dict.getType('inventoryStatus')}]];
+
+    $(function() {
+        var options = {
+            url: prefix + "/list",
+            createUrl: prefix + "/add",
+            updateUrl: prefix + "/edit/{id}",
+            removeUrl: prefix + "/remove",
+            modalName: "质检报告",
+            search: false,
+            queryParams: queryParams,
+            sortName: "id",
+            sortOrder: "desc",
+            columns: [{
+                checkbox: true
+            },
+                {
+                    field : 'id',
+                    title : 'id'
+                },
+                {
+                    field : 'checkDetailId',
+                    title : '质检明细标识',
+                    visible : false
+                },
+                {
+                    field : 'checkHeaderId',
+                    title : '头表标识',
+                    visible : false
+                },
+                {
+                    field : 'warehouseCode',
+                    title : '仓库代码',
+                    visible : false
+                },
+                {
+                    field : 'checkCode',
+                    title : '质检单号'
+                },
+                {
+                    field : 'receiptDetailId',
+                    title : '入库单明细标识'  ,
+                    visible:false
+                },
+                {
+                    field : 'receiptCode',
+                    title : '入库单号'
+                },
+                {
+                    field : 'referCode',
+                    title : '关联单号'
+                },
+                {
+                    field : 'referLineId',
+                    title : '关联行号'  ,
+                    visible:false
+                },
+                {
+                    field : 'referPlatform',
+                    title : '关联平台'  ,
+                    visible:false
+                },
+                {
+                    field : 'materialCode',
+                    title : '物料编码'
+                },
+                {
+                    field : 'materialName',
+                    title : '物料名称'
+                },
+                {
+                    field : 'materialSpec',
+                    title : '物料规格'
+                },
+                {
+                    field : 'materialUnit',
+                    title : '物料单位'
+                },
+                {
+                    field : 'companyCode',
+                    title : '货主编码'  ,
+                    visible:false
+                },
+                {
+                    field : 'inventorySts',
+                    title : '库存状态',
+                    align: 'center',
+                    formatter: function (value, row, index) {
+                        return $.table.selectDictLabel(inventorySts, value);
+                    }
+                },
+                {
+                    field : 'qty',
+                    title : '数量'
+                },
+                {
+                    field : 'checkBy',
+                    title : '质检人'
+                },
+                {
+                    field : 'checkAt',
+                    title : '质检时间'
+                },
+                {
+                    field : 'created',
+                    title : '创建时间'
+                },
+                {
+                    field : 'createdBy',
+                    title : '创建用户'
+                },
+                {
+                    field : 'lastUpdated',
+                    title : '更新时间'
+                },
+                {
+                    field : 'lastUpdatedBy',
+                    title : '更新用户'
+                },
+                {
+                    field : 'userDef1',
+                    title : '自定义字段1' ,
+                    visible:false
+                },
+                {
+                    field : 'userDef2',
+                    title : '自定义字段2'  ,
+                    visible:false
+                },
+                {
+                    field : 'userDef3',
+                    title : '自定义字段3'  ,
+                    visible:false
+                }]
+        };
+        $.table.init(options);
+    });
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/resources/templates/config/wave/add.html b/src/main/resources/templates/config/wave/add.html
new file mode 100644
index 0000000..78114e5
--- /dev/null
+++ b/src/main/resources/templates/config/wave/add.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML>
+<html  lang="zh" xmlns:th="http://www.thymeleaf.org">
+<meta charset="utf-8">
+<head th:include="include :: header"></head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-wave-add">
+        <div class="form-group">
+            <label class="col-sm-3 control-label">波次名称:</label>
+            <div class="col-sm-8">
+                <input id="waveName" name="waveName" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">波次主表:</label>
+            <div class="col-sm-8">
+                <input id="masterCode" name="masterCode" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">状态:</label>
+            <div class="col-sm-8">
+                <input id="status" name="status" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">是否锁定:</label>
+            <div class="col-sm-8">
+                <div class="radio radio-info radio-inline" style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="locked1" name="locked" value="true" checked="checked"
+                           class="radio_select">
+                    <label for="locked1">是</label>
+                </div>
+                <div class="radio radio-danger radio-inline " style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="locked2" name="locked" value="false">
+                    <label for="locked2">否</label>
+                </div>
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">是否需要补货:</label>
+            <div class="col-sm-8">
+                <div class="radio radio-info radio-inline" style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="replenishmentReqd1" name="replenishmentReqd" value="true" checked="checked"
+                           class="radio_select">
+                    <label for="replenishmentReqd1">是</label>
+                </div>
+                <div class="radio radio-danger radio-inline " style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="replenishmentReqd2" name="replenishmentReqd" value="false">
+                    <label for="replenishmentReqd2">否</label>
+                </div>
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">波次模式:</label>
+            <div class="col-sm-8">
+                <input id="waveMode" name="waveMode" class="form-control" type="text">
+            </div>
+        </div>
+        <!--<div class="form-group">
+            <label class="col-sm-3 control-label">数据版本:</label>
+            <div class="col-sm-8">
+                <input id="version" name="version" class="form-control" type="text">
+            </div>
+        </div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">创建时间:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="created" name="created" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">创建者:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="createdBy" name="createdBy" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">创建时间:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="lastUpdated" name="lastUpdated" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">更新者:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="lastUpdatedBy" name="lastUpdatedBy" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">是否有效:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--&lt;!&ndash;<input id="enable" name="enable" class="form-control" type="text">&ndash;&gt;-->
+        <!--<div class="onoffswitch">-->
+        <!--<input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="enable" name="enable">-->
+        <!--<label class="onoffswitch-label" for="enable">-->
+        <!--<span class="onoffswitch-inner"></span>-->
+        <!--<span class="onoffswitch-switch"></span>-->
+        <!--</label>-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">是否删除:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="deleted" name="deleted" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段1:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef1" name="userDef1" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段2:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef2" name="userDef2" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段3:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef3" name="userDef3" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段4:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef4" name="userDef4" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段5:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef5" name="userDef5" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <div class="form-group">
+            <div class="form-control-static col-sm-offset-9">
+                <button type="submit" class="btn btn-primary">提交</button>
+                <button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
+            </div>
+        </div>
+    </form>
+</div>
+<div th:include="include::footer"></div>
+<script type="text/javascript">
+    var prefix = ctx + "config/wave";
+    $("#form-wave-add").validate({
+        rules:{
+            waveName:{
+                required: true,
+            },
+            masterCode:{
+                required: true,
+            },
+            status:{
+                required: true,
+            },
+            locked:{
+                required: true,
+            },
+            replenishmentReqd:{
+                required: true,
+            },
+            waveMode: {
+                required: true,
+            }
+        },
+        submitHandler: function(form) {
+            var tableValue = $.common.getTableValue("#form-wave-add");
+            $.operate.save(prefix + "/add", tableValue);
+        }
+    });
+</script>
+</body>
+</html>
diff --git a/src/main/resources/templates/config/wave/edit.html b/src/main/resources/templates/config/wave/edit.html
new file mode 100644
index 0000000..5e74103
--- /dev/null
+++ b/src/main/resources/templates/config/wave/edit.html
@@ -0,0 +1,179 @@
+<!DOCTYPE HTML>
+<html  lang="zh" xmlns:th="http://www.thymeleaf.org">
+<meta charset="utf-8">
+<head th:include="include :: header"></head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content" th:object="${wave}">
+    <form class="form-horizontal m" id="form-wave-edit">
+        <input name="id" th:field="*{id}">
+        <div class="form-group">
+            <label class="col-sm-3 control-label">波次名称:</label>
+            <div class="col-sm-8">
+                <input id="waveName" name="waveName" class="form-control" type="text" th:field="*{waveName}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">波次主表:</label>
+            <div class="col-sm-8">
+                <input id="masterCode" name="masterCode" class="form-control" type="text" th:field="*{masterCode}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">状态:</label>
+            <div class="col-sm-8">
+                <input id="status" name="status" class="form-control" type="text" th:field="*{status}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">是否锁定:</label>
+            <div class="col-sm-8">
+                <div class="radio radio-info radio-inline" style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="locked1" name="locked" value="true" th:field="*{locked}"
+                           class="radio_select">
+                    <label for="locked1">是</label>
+                </div>
+                <div class="radio radio-danger radio-inline " style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="locked2" name="locked" value="false" th:field="*{locked}">
+                    <label for="locked2">否</label>
+                </div>
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">是否需要补货:</label>
+            <div class="col-sm-8">
+                <div class="radio radio-info radio-inline" style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="replenishmentReqd1" name="replenishmentReqd" value="true" th:field="*{replenishmentReqd}"
+                           class="radio_select">
+                    <label for="replenishmentReqd1">是</label>
+                </div>
+                <div class="radio radio-danger radio-inline " style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="replenishmentReqd2" name="replenishmentReqd" value="false" th:field="*{replenishmentReqd}">
+                    <label for="replenishmentReqd2">否</label>
+                </div>
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">波次模式:</label>
+            <div class="col-sm-8">
+                <input id="waveMode" name="waveMode" class="form-control" type="text" th:field="*{waveMode}">
+            </div>
+        </div>
+        <!--<div class="form-group">
+            <label class="col-sm-3 control-label">数据版本:</label>
+            <div class="col-sm-8">
+                <input id="version" name="version" class="form-control" type="text">
+            </div>
+        </div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">创建时间:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="created" name="created" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">创建者:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="createdBy" name="createdBy" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">创建时间:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="lastUpdated" name="lastUpdated" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">更新者:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="lastUpdatedBy" name="lastUpdatedBy" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">是否有效:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--&lt;!&ndash;<input id="enable" name="enable" class="form-control" type="text">&ndash;&gt;-->
+        <!--<div class="onoffswitch">-->
+        <!--<input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="enable" name="enable">-->
+        <!--<label class="onoffswitch-label" for="enable">-->
+        <!--<span class="onoffswitch-inner"></span>-->
+        <!--<span class="onoffswitch-switch"></span>-->
+        <!--</label>-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">是否删除:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="deleted" name="deleted" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段1:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef1" name="userDef1" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段2:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef2" name="userDef2" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段3:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef3" name="userDef3" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段4:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef4" name="userDef4" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段5:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef5" name="userDef5" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <div class="form-group">
+            <div class="form-control-static col-sm-offset-9">
+                <button type="submit" class="btn btn-primary">提交</button>
+                <button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
+            </div>
+        </div>
+    </form>
+</div>
+<div th:include="include::footer"></div>
+<script type="text/javascript">
+    var prefix = ctx + "config/wave";
+    $("#form-wave-edit").validate({
+        rules:{
+            waveName:{
+                required: true,
+            },
+            masterCode:{
+                required: true,
+            },
+            status:{
+                required: true,
+            },
+            locked:{
+                required: true,
+            },
+            replenishmentReqd:{
+                required: true,
+            },
+            waveMode: {
+                required: true,
+            }
+        },
+        submitHandler: function(form) {
+            var tableValue = $.common.getTableValue("#form-wave-edit");
+            $.operate.save(prefix + "/edit", tableValue);
+        }
+    });
+</script>
+</body>
+</html>
diff --git a/src/main/resources/templates/config/wave/wave.html b/src/main/resources/templates/config/wave/wave.html
new file mode 100644
index 0000000..888f239
--- /dev/null
+++ b/src/main/resources/templates/config/wave/wave.html
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<meta charset="utf-8">
+<head th:include="include :: header"></head>
+<body class="gray-bg">
+<div class="container-div">
+    <div class="row">
+        <div class="col-sm-12 select-info">
+            <form id="wave-form">
+                <div class="select-list">
+                    <ul>
+                        <li>
+                            波次名称:<input type="text" name="waveName"/>
+                        </li>
+                        <li>
+                            波次主表:<input type="text" name="masterCode"/>
+                        </li>
+                        <li class="time">
+                            <label>创建时间: </label>
+                            <input type="text" class="time-input" id="startTime" placeholder="开始时间" name="createdBegin"/>
+                            <span>-</span>
+                            <input type="text" class="time-input" id="endTime" placeholder="结束时间" name="createdEnd"/>
+                        </li>
+                        <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-success btn-rounded btn-sm" onclick="$.table.exportExcel()" shiro:hasPermission="system:role:export"><i class="fa fa-download"></i>&nbsp;导出</a>-->
+                        </li>
+                    </ul>
+                </div>
+            </form>
+        </div>
+        <div class="btn-group hidden-xs" id="toolbar" role="group">
+            <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" shiro:hasPermission="config:wave:add">
+                <i class="fa fa-plus"></i> 新增
+            </a>
+            <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" shiro:hasPermission="config:wave:remove">
+                <i class="fa fa-trash-o"></i> 删除
+            </a>
+        </div>
+
+        <div class="col-sm-12 select-info">
+            <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table>
+        </div>
+        <div>
+        </div>
+        <div th:include="include :: footer"></div>
+        <script th:inline="javascript">
+            var editFlag = [[${@permission.hasPermi('config:wave:edit')}]];
+            var removeFlag = [[${@permission.hasPermi('config:wave:remove')}]];
+            var prefix = ctx + "config/wave";
+            var datas = [[${@dict.getType('sys_normal_disable')}]];
+            $(function() {
+                var options = {
+                    url: prefix + "/list",
+                    createUrl: prefix + "/add",
+                    updateUrl: prefix + "/edit/{id}",
+                    removeUrl: prefix + "/remove",
+                    modalName: "波次",
+                    search: false,
+                    columns: [{
+                        checkbox: true
+                    },
+                        {
+                            field : 'id',
+                            title : 'ID'
+                        },
+                        {
+                            field : 'waveName',
+                            title : '波次名称'
+                        },
+                        {
+                            field : 'masterCode',
+                            title : '波次主表'
+                        },
+                        {
+                            field : 'status',
+                            title : '状态'
+                        },
+                        {
+                            field : 'warehouseCode',
+                            title : '仓库编码',
+                            visible : false
+                        },
+                        {
+                            field : 'currentWaveStep',
+                            title : '当前波次步骤',
+                        },
+                        {
+                            field : 'lastWaveStep',
+                            title : '上一波次步骤',
+                        },
+                        {
+                            field : 'totalShipments',
+                            title : '总单数',
+                        },
+                        {
+                            field : 'totalLines',
+                            title : '总行数'
+                        },
+                        {
+                            field : 'totalQty',
+                            title : '总数量'
+                        },
+                        {
+                            field : 'locked',
+                            title : '是否锁定',
+                            formatter: function (value, item, index) {
+                                if (value==true) {
+                                    return '<span class="badge" style="background-color: #00B83F;color: white;width: 36px;">' + ' 是 ' + '</span>';
+                                }
+                                else if (value==false) {
+                                    return '<span class="badge" style="background-color: #ff0000;color: white;width: 36px;">' + ' 否 ' + '</span>';
+                                }
+                            }
+                        },
+                        {
+                            field : 'replenishmentReqd',
+                            title : '是否需要补货',
+                            formatter: function (value, item, index) {
+                                if (value==true) {
+                                    return '<span class="badge" style="background-color: #00B83F;color: white;width: 36px;">' + ' 是 ' + '</span>';
+                                }
+                                else if (value==false) {
+                                    return '<span class="badge" style="background-color: #ff0000;color: white;width: 36px;">' + ' 否 ' + '</span>';
+                                }
+                            }
+                        },
+                        {
+                            field : 'startedAt',
+                            title : '波次开始时间'
+                        },
+                        {
+                            field : 'completedAt',
+                            title : '波次结束时间'
+                        },
+                        {
+                            field : 'waveMode',
+                            title : '波次模式'
+                        },
+                        {
+                            field : 'errorMessage',
+                            title : '错误信息'
+                        },
+                        {
+                            field : 'runBy',
+                            title : '信息编码'
+                        },
+                        {
+                            field : 'created',
+                            title : '创建时间',
+                            visible : false
+                        },
+                        {
+                            field : 'createdBy',
+                            title : '创建用户',
+                            visible : false
+                        },
+                        {
+                            field : 'lastUpdated',
+                            title : '更新时间',
+                            visible : false
+                        },
+                        {
+                            field : 'lastUpdatedBy',
+                            title : '更新用户',
+                            visible : false
+                        },
+                        {
+                            field : 'version',
+                            title : '数据版本',
+                            visible : false
+                        },
+                        {
+                            field : 'processStamp',
+                            title : '处理标记',
+                            visible : false
+                        },
+                        {
+                            field : 'userDef1',
+                            title : '自定义字段1' ,
+                            visible:false
+                        },
+                        {
+                            field : 'userDef2',
+                            title : '自定义字段2' ,
+                            visible:false
+                        },
+                        {
+                            field : 'userDef3',
+                            title : '自定义字段3' ,
+                            visible:false
+                        },
+                        {
+                            field : 'userDef4',
+                            title : '自定义字段4' ,
+                            visible:false
+                        },
+                        {
+                            title: '操作',
+                            align: 'center',
+                            formatter: function(value, row, index) {
+                                var actions = [];
+                                actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')" ><i class="fa fa-edit"></i>编辑</a> ');
+                                actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')" ><i class="fa fa-trash-o"></i>删除</a>');
+                                return actions.join('');
+                            }
+                        }]
+                };
+                $.table.init(options);
+            });
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/resources/templates/config/waveFlowDetail/add.html b/src/main/resources/templates/config/waveFlowDetail/add.html
new file mode 100644
index 0000000..f54964d
--- /dev/null
+++ b/src/main/resources/templates/config/waveFlowDetail/add.html
@@ -0,0 +1,107 @@
+<!DOCTYPE HTML>
+<html  lang="zh" xmlns:th="http://www.thymeleaf.org">
+<meta charset="utf-8">
+<head th:include="include :: header"></head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-filterConfigDetail-add">
+        <input name="headerId" type="hidden" th:value="${headerId}">
+        <div class="form-group">
+            <label class="col-sm-3 control-label">编码:</label>
+            <div class="col-sm-8">
+                <input id="code" name="code" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">模块:</label>
+            <div class="col-sm-8">
+                <input id="moduleType" name="moduleType" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">类型:</label>
+            <div class="col-sm-8">
+                <input id="recordType" name="recordType" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">条件名:</label>
+            <div class="col-sm-8">
+                <input id="filterCode" name="filterCode" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">描述:</label>
+            <div class="col-sm-8">
+                <input id="description" name="description" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">全SQL:</label>
+            <div class="col-sm-8">
+                <input id="statement" name="statement" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">是否系统创建:</label>
+            <div class="col-sm-8">
+                <div class="radio radio-info radio-inline" style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="systemCreated1" name="systemCreated" value="true" checked="checked"
+                           class="radio_select">
+                    <label for="systemCreated1">是</label>
+                </div>
+                <div class="radio radio-danger radio-inline " style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="systemCreated2" name="systemCreated" value="false">
+                    <label for="systemCreated2">否</label>
+                </div>
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">是否自定义SQL:</label>
+            <div class="col-sm-8">
+                <div class="radio radio-info radio-inline" style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="customSql1" name="customSql" value="true" checked="checked"
+                           class="radio_select">
+                    <label for="customSql1">是</label>
+                </div>
+                <div class="radio radio-danger radio-inline " style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="customSql2" name="customSql" value="false">
+                    <label for="customSql2">否</label>
+                </div>
+            </div>
+        </div>
+        <div class="form-group">
+            <div class="form-control-static col-sm-offset-9">
+                <button type="submit" class="btn btn-primary">提交</button>
+                <button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
+            </div>
+        </div>
+    </form>
+</div>
+<div th:include="include::footer"></div>
+<script type="text/javascript">
+    var prefix = ctx + "config/filterConfigDetail";
+    $("#form-filterConfigDetail-add").validate({
+        rules:{
+            code:{
+                required:true,
+            },
+            moduleType:{
+                required:true,
+            },
+            recordType:{
+                required:true,
+            },
+            filterCode:{
+                required:true,
+            },
+        },
+        submitHandler: function(form) {
+            // $.operate.save(prefix + "/add", $('#form-locationType-add').serialize());
+            var tableValue = $.common.getTableValue("#form-filterConfigDetail-add");
+            $.operate.save(prefix + "/add", tableValue);
+        }
+    });
+</script>
+</body>
+</html>
diff --git a/src/main/resources/templates/config/waveFlowDetail/edit.html b/src/main/resources/templates/config/waveFlowDetail/edit.html
new file mode 100644
index 0000000..abca232
--- /dev/null
+++ b/src/main/resources/templates/config/waveFlowDetail/edit.html
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML>
+<html  lang="zh" xmlns:th="http://www.thymeleaf.org">
+<meta charset="utf-8">
+<head th:include="include :: header"></head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-filterConfigDetail-edit" th:object="${filterConfigDetail}">
+        <input name="id" type="hidden" th:field="*{id}">
+        <input name="headerId" type="hidden" th:field="*{headerId}">
+        <div class="form-group">
+            <label class="col-sm-3 control-label">编码:</label>
+            <div class="col-sm-8">
+                <input id="code" name="code" class="form-control" type="text" th:field="*{code}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">模块:</label>
+            <div class="col-sm-8">
+                <input id="moduleType" name="moduleType" class="form-control" type="text" th:field="*{moduleType}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">类型:</label>
+            <div class="col-sm-8">
+                <input id="recordType" name="recordType" class="form-control" type="text" th:field="*{recordType}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">条件名:</label>
+            <div class="col-sm-8">
+                <input id="filterCode" name="filterCode" class="form-control" type="text" th:field="*{filterCode}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">描述:</label>
+            <div class="col-sm-8">
+                <input id="description" name="description" class="form-control" type="text" th:field="*{description}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">全SQL:</label>
+            <div class="col-sm-8">
+                <input id="statement" name="statement" class="form-control" type="text" th:field="*{statement}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">是否系统创建:</label>
+            <div class="col-sm-8">
+                <div class="radio radio-info radio-inline" style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="systemCreated1" name="systemCreated" value="true" th:field="*{systemCreated}"
+                           class="radio_select">
+                    <label for="systemCreated1">是</label>
+                </div>
+                <div class="radio radio-danger radio-inline " style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="systemCreated2" name="systemCreated" value="false" th:field="*{systemCreated}">
+                    <label for="systemCreated2">否</label>
+                </div>
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">是否自定义SQL:</label>
+            <div class="col-sm-8">
+                <div class="radio radio-info radio-inline" style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="customSql1" name="customSql" value="true" th:field="*{customSql}"
+                           class="radio_select">
+                    <label for="customSql1">是</label>
+                </div>
+                <div class="radio radio-danger radio-inline " style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="customSql2" name="customSql" value="false" th:field="*{customSql}">
+                    <label for="customSql2">否</label>
+                </div>
+            </div>
+        </div>
+        <div class="form-group">
+            <div class="form-control-static col-sm-offset-9">
+                <button type="submit" class="btn btn-primary">提交</button>
+                <button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
+            </div>
+        </div>
+    </form>
+</div>
+<div th:include="include::footer"></div>
+<script type="text/javascript">
+    var prefix = ctx + "config/filterConfigDetail";
+    $("#form-filterConfigDetail-edit").validate({
+        rules:{
+            code:{
+                required:true,
+            },
+            moduleType:{
+                required:true,
+            },
+            recordType:{
+                required:true,
+            },
+            filterCode:{
+                required:true,
+            },
+        },
+        submitHandler: function(form) {
+            // $.operate.save(prefix + "/add", $('#form-locationType-add').serialize());
+            var tableValue = $.common.getTableValue("#form-filterConfigDetail-edit");
+            $.operate.save(prefix + "/edit", tableValue);
+        }
+    });
+</script>
+</body>
+</html>
diff --git a/src/main/resources/templates/config/waveFlowDetail/waveFlowDetail.html b/src/main/resources/templates/config/waveFlowDetail/waveFlowDetail.html
new file mode 100644
index 0000000..8dbd90b
--- /dev/null
+++ b/src/main/resources/templates/config/waveFlowDetail/waveFlowDetail.html
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<meta charset="utf-8">
+<head th:include="include :: header"></head>
+<body>
+
+<div class="btn-group hidden-xs" id="toolbar" role="group">
+    <a class="btn btn-outline btn-success btn-rounded" onclick="add()" shiro:hasPermission="config:waveFlowDetail:add">
+        <i class="fa fa-plus"></i> 新增
+    </a>
+    <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" shiro:hasPermission="config:waveFlowDetail:remove">
+        <i class="fa fa-trash-o"></i> 删除
+    </a>
+</div>
+<div class="col-sm-12">
+    <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table>
+</div>
+
+
+<div th:include="include :: footer"></div>
+<script th:inline="javascript">
+    var prefix = ctx + "config/waveFlowDetail";
+    var editFlag = [[${@permission.hasPermi('config:waveFlowDetail:edit')}]];
+    var removeFlag = [[${@permission.hasPermi('config:waveFlowDetail:remove')}]];
+    var datas = [[${@dict.getType('sys_normal_disable')}]];
+    var nessaryDatas = [[${@dict.getType('nessary')}]];
+    $(function() {
+        var options = {
+            url: prefix + "/list",
+            createUrl: prefix + "/add",
+            updateUrl: prefix + "/edit/{id}",
+            removeUrl: prefix + "/remove",
+            modalName: "订单分析明细",
+            queryParams:function(params) {
+                return {
+                    // 传递参数查询参数
+                    headerId:       [[${headerId}]],
+                    pageSize:       params.limit,
+                    pageNum:        params.offset / params.limit + 1,
+                    searchValue:    params.search,
+                    orderByColumn:  params.sort,
+                    isAsc:          params.order
+                };
+            },
+            search: false,
+            sortName: "id",
+            sortOrder: "desc",
+            columns: [{
+                checkbox: true
+            },
+                {
+                    field : 'id',
+                    title : 'id'
+                },
+                {
+                    field : 'headerId',
+                    title : '头表id',
+                    visible: false
+                },
+                {
+                    field : 'waveFlowCode',
+                    title : '波次流程'
+                },
+                {
+                    field : 'sequence',
+                    title : '序号'
+                },
+                {
+                    field : 'waveStepCode',
+                    title : '波次步骤'
+                },
+                {
+                    field : 'waveStepName',
+                    title : '描述'
+                },
+                {
+                    field : 'value1',
+                    title : '参数1',
+                    visible : false
+                },
+                {
+                    field : 'value2',
+                    title : '参数2',
+                    visible : false
+                },
+                {
+                    field : 'value3',
+                    title : '参数3',
+                    visible : false
+                },
+                {
+                    field : 'created',
+                    title : '创建时间'
+                },
+                {
+                    field : 'createdBy',
+                    title : '创建用户'
+                },
+                {
+                    field : 'lastUpdated',
+                    title : '更新时间'
+                },
+                {
+                    field : 'lastUpdatedBy',
+                    title : '更新用户'
+                },
+                {
+                    field : 'userDef1',
+                    title : '自定义字段1' ,
+                    visible:false
+                },
+                {
+                    field : 'userDef2',
+                    title : '自定义字段2'  ,
+                    visible:false
+                },
+                {
+                    field : 'userDef3',
+                    title : '自定义字段3'  ,
+                    visible:false
+                },
+                {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function(value, row, index) {
+                        var actions = [];
+                        actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+                        actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a>');
+                        return actions.join('');
+                    }
+                }]
+        };
+        $.table.init(options);
+    });
+
+    function add() {
+        var headerId = [[${headerId}]];
+        $.modal.open("添加流程明细",  prefix + "/add/"+headerId);
+    }
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/resources/templates/config/waveFlowHeader/add.html b/src/main/resources/templates/config/waveFlowHeader/add.html
new file mode 100644
index 0000000..3079101
--- /dev/null
+++ b/src/main/resources/templates/config/waveFlowHeader/add.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org">
+<meta charset="utf-8">
+<head th:include="include :: header"></head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-filterConfigHeader-add">
+        <div class="form-group">
+            <label class="col-sm-3 control-label">流程名称:</label>
+            <div class="col-sm-8">
+                <input id="code" name="code" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <div class="form-control-static col-sm-offset-9">
+                <button type="submit" class="btn btn-primary">提交</button>
+                <button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
+            </div>
+        </div>
+    </form>
+</div>
+<div th:include="include::footer"></div>
+<script type="text/javascript">
+    var prefix = ctx + "config/filterConfigHeader";
+    $("#form-filterConfigHeader-add").validate({
+        rules: {
+            code: {
+                required: true,
+            }
+        },
+        submitHandler: function (form) {
+            // $.operate.save(prefix + "/add", $('#form-locationType-add').serialize());
+            var tableValue = $.common.getTableValue("#form-filterConfigHeader-add");
+            $.operate.save(prefix + "/add", tableValue);
+        }
+    });
+</script>
+</body>
+</html>
diff --git a/src/main/resources/templates/config/waveFlowHeader/edit.html b/src/main/resources/templates/config/waveFlowHeader/edit.html
new file mode 100644
index 0000000..5bf6827
--- /dev/null
+++ b/src/main/resources/templates/config/waveFlowHeader/edit.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML>
+<html  lang="zh" xmlns:th="http://www.thymeleaf.org">
+<meta charset="utf-8">
+<head th:include="include :: header"></head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-waveFlowHeader-edit" th:object="${waveFlowHeader}">
+        <input name="id" th:field="*{id}" type="hidden">
+        <div class="form-group">
+            <label class="col-sm-3 control-label">流程名称:</label>
+            <div class="col-sm-8">
+                <input id="code" name="code" class="form-control" type="text" th:field="*{code}">
+            </div>
+        </div>
+        <!--<div class="form-group">-->
+            <!--<label class="col-sm-3 control-label">是否系统创建:</label>-->
+            <!--<div class="col-sm-8">-->
+                <!--<div class="onoffswitch">-->
+                    <!--<input type="checkbox" th:checked="${systemCreated}" class="onoffswitch-checkbox" id="systemCreated" name="systemCreated">-->
+                    <!--<label class="onoffswitch-label" for="systemCreated">-->
+                        <!--<span class="onoffswitch-inner"></span>-->
+                        <!--<span class="onoffswitch-switch"></span>-->
+                    <!--</label>-->
+                <!--</div>-->
+            <!--</div>-->
+        <!--</div>-->
+        <div class="form-group">
+            <div class="form-control-static col-sm-offset-9">
+                <button type="submit" class="btn btn-primary">提交</button>
+                <button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
+            </div>
+        </div>
+    </form>
+</div>
+<div th:include="include::footer"></div>
+<script type="text/javascript">
+    var prefix = ctx + "config/waveFlowHeader";
+    $("#form-waveFlowHeader-edit").validate({
+        rules:{
+            code:{
+                required:true,
+            }
+        },
+        submitHandler: function(form) {
+            var tableValue = $.common.getTableValue("#form-waveFlowHeader-edit");
+            $.operate.save(prefix + "/edit", tableValue);
+        }
+    });
+</script>
+</body>
+</html>
diff --git a/src/main/resources/templates/config/waveFlowHeader/waveFlowHeader.html b/src/main/resources/templates/config/waveFlowHeader/waveFlowHeader.html
new file mode 100644
index 0000000..d7f8ea2
--- /dev/null
+++ b/src/main/resources/templates/config/waveFlowHeader/waveFlowHeader.html
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<meta charset="utf-8">
+<head th:include="include :: header"></head>
+<body class="gray-bg">
+
+<div class="container-div">
+    <div class="row">
+        <div class="col-sm-12 select-info">
+            <ul id="myTab" class="nav nav-tabs">
+                <li class="active"><a href="#tabHeader" data-toggle="tab">主表</a></li>
+                <li><a href="#tabDetail" data-toggle="tab">明细</a></li>
+            </ul>
+            <div id="myTabContent" class="tab-content">
+                <div class="tab-pane fade in active" id="tabHeader">
+                    <div class="col-sm-12 select-info">
+                        <form id="waveFlowHeader-form">
+                            <div class="select-list">
+                                <ul>
+                                    <li>
+                                        流程名称:<input type="text" name="code"/>
+                                    </li>
+                                    <li class="time">
+                                        <label>创建时间: </label>
+                                        <input type="text" class="time-input" id="startTime" placeholder="开始时间"
+                                               name="createdBegin"/>
+                                        <span>-</span>
+                                        <input type="text" class="time-input" id="endTime" placeholder="结束时间"
+                                               name="createdEnd"/>
+                                    </li>
+                                    <li>
+                                        <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
+                                                class="fa fa-search"></i>&nbsp;搜索</a>
+                                    </li>
+                                </ul>
+                            </div>
+                        </form>
+                    </div>
+
+
+                    <div class="btn-group hidden-xs" id="toolbar" role="group">
+                        <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()"
+                           shiro:hasPermission="config:waveFlowHeader:add">
+                            <i class="fa fa-plus"></i> 新增
+                        </a>
+                        <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()"
+                           shiro:hasPermission="config:waveFlowHeader:remove">
+                            <i class="fa fa-trash-o"></i> 删除
+                        </a>
+                    </div>
+
+                    <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table>
+                </div>
+
+                <div class="tab-pane fade" id="tabDetail">
+                    <table id="bootstrap-table1" data-mobile-responsive="true"
+                           class="table table-bordered table-hover"></table>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<div th:include="include :: footer"></div>
+<script th:inline="javascript">
+    var prefix = ctx + "config/waveFlowHeader";
+    var prefix1 = ctx + "config/waveFlowDetail";
+    var editFlag = [[${@permission.hasPermi('config:waveFlowHeader:edit')}]];
+    var removeFlag = [[${@permission.hasPermi('config:waveFlowHeader:remove')}]];
+    var datas = [[${@dict.getType('sys_normal_disable')}]];
+
+    $(function() {
+        var options = {
+            url: prefix + "/list",
+            createUrl: prefix + "/add",
+            updateUrl: prefix + "/edit/{id}",
+            removeUrl: prefix + "/remove",
+            modalName: "订单分析主表",
+            search: false,
+            sortName: "id",
+            sortOrder: "desc",
+            columns: [{
+                checkbox: true
+            },
+                {
+                    field : 'id',
+                    title : 'id'
+                },
+                {
+                    field : 'code',
+                    title : '流程名称'
+                },
+                {
+                    field : 'version',
+                    title : '数据版本',
+                    visible : false
+                },
+                {
+                    field : 'processStamp',
+                    title : '处理标记',
+                    visible : false
+                },
+                {
+                    field : 'created',
+                    title : '创建时间',
+                    visible : false
+                },
+                {
+                    field : 'createdBy',
+                    title : '创建用户',
+                    visible : false
+                },
+                {
+                    field : 'lastUpdated',
+                    title : '更新时间',
+                    visible : false
+                },
+                {
+                    field : 'lastUpdatedBy',
+                    title : '更新用户',
+                    visible : false
+                },
+                {
+                    field : 'userDef1',
+                    title : '自定义字段1' ,
+                    visible:false
+                },
+                {
+                    field : 'userDef2',
+                    title : '自定义字段2'  ,
+                    visible:false
+                },
+                {
+                    field : 'userDef3',
+                    title : '自定义字段3'  ,
+                    visible:false
+                },
+                {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function(value, row, index) {
+                        var actions = [];
+                        actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+                        actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a>');
+                        return actions.join('');
+                    }
+                }]
+        };
+        $.table.init(options);
+    });
+
+    function detail(id, code) {
+        var url = prefix1+"/list/" + id;
+        createtable(url);
+    }
+
+    function createtable(url) {
+        $("#tabDetail").children().remove();
+        $("#myTab li").removeClass("active");
+        var height = $(document).height()-100 + 'px';
+        var str = '<iframe class="huaheng_iframe" name="iframe" width="100%" height="' + height + '" src="' + url + '" frameborder="0" data-id="' + url + '" seamless></iframe>';
+        $("#tabDetail").append(str);
+        $(".tab-pane").removeClass("in active");
+        $("#myTab li:eq(1)").addClass("active");
+        $("#tabDetail").addClass("in active");
+    }
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/resources/templates/config/waveMaster/add.html b/src/main/resources/templates/config/waveMaster/add.html
new file mode 100644
index 0000000..03fade8
--- /dev/null
+++ b/src/main/resources/templates/config/waveMaster/add.html
@@ -0,0 +1,224 @@
+<!DOCTYPE HTML>
+<html  lang="zh" xmlns:th="http://www.thymeleaf.org">
+<meta charset="utf-8">
+<head th:include="include :: header"></head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-waveMaster-add">
+        <div class="form-group">
+            <label class="col-sm-3 control-label">主表名称:</label>
+            <div class="col-sm-8">
+                <input id="code" name="code" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">排序:</label>
+            <div class="col-sm-8">
+                <input id="sequence" name="sequence" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">出库单条件:</label>
+            <div class="col-sm-8">
+                <input id="shipmentFilterCode" name="shipmentFilterCode" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">波次流程:</label>
+            <div class="col-sm-8">
+                <input id="waveFlowCode" name="waveFlowCode" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">状态流程:</label>
+            <div class="col-sm-8">
+                <input id="statusFlowCode" name="statusFlowCode" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">缺货模式:</label>
+            <div class="col-sm-8">
+                <input id="shortMode" name="shortMode" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">订单数限制:</label>
+            <div class="col-sm-8">
+                <input id="maxShipments" name="maxShipments" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">行数限制数量:</label>
+            <div class="col-sm-8">
+                <input id="maxLines" name="maxLines" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">默认波次创建数量:</label>
+            <div class="col-sm-8">
+                <input id="defaultWaveCreateSize" name="defaultWaveCreateSize" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">订单分组大小:</label>
+            <div class="col-sm-8">
+                <input id="shipmentGroupSize" name="shipmentGroupSize" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">是否补货:</label>
+            <div class="col-sm-8">
+                <div class="radio radio-info radio-inline" style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="needReplenishment1" name="needReplenishment" value="true" checked="checked"
+                           class="radio_select">
+                    <label for="needReplenishment1">是</label>
+                </div>
+                <div class="radio radio-danger radio-inline " style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="needReplenishment2" name="needReplenishment" value="false">
+                    <label for="needReplenishment2">否</label>
+                </div>
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">取消波次时保留补货任务:</label>
+            <div class="col-sm-8">
+                <input id="holdRplnTask" name="holdRplnTask" class="form-control" type="text">
+            </div>
+        </div>
+        <!--<div class="form-group">
+            <label class="col-sm-3 control-label">数据版本:</label>
+            <div class="col-sm-8">
+                <input id="version" name="version" class="form-control" type="text">
+            </div>
+        </div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">创建时间:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="created" name="created" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">创建者:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="createdBy" name="createdBy" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">创建时间:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="lastUpdated" name="lastUpdated" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">更新者:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="lastUpdatedBy" name="lastUpdatedBy" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">是否有效:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--&lt;!&ndash;<input id="enable" name="enable" class="form-control" type="text">&ndash;&gt;-->
+        <!--<div class="onoffswitch">-->
+        <!--<input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="enable" name="enable">-->
+        <!--<label class="onoffswitch-label" for="enable">-->
+        <!--<span class="onoffswitch-inner"></span>-->
+        <!--<span class="onoffswitch-switch"></span>-->
+        <!--</label>-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">是否删除:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="deleted" name="deleted" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段1:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef1" name="userDef1" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段2:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef2" name="userDef2" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段3:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef3" name="userDef3" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段4:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef4" name="userDef4" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段5:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef5" name="userDef5" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <div class="form-group">
+            <div class="form-control-static col-sm-offset-9">
+                <button type="submit" class="btn btn-primary">提交</button>
+                <button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
+            </div>
+        </div>
+    </form>
+</div>
+<div th:include="include::footer"></div>
+<script type="text/javascript">
+    var prefix = ctx + "config/waveMaster";
+    $("#form-waveMaster-add").validate({
+        rules:{
+            code:{
+                required: true,
+            },
+            sequence:{
+                required: true,
+            },
+            shipmentFilterCode:{
+                required: true,
+            },
+            waveFlowCode:{
+                required: true,
+            },
+            statusFlowCode:{
+                required: true,
+            },
+            shortMode: {
+                required: true,
+            },
+            maxShipments: {
+                required: true,
+            },
+            maxLines: {
+                required: true,
+            },
+            defaultWaveCreateSize: {
+                required: true,
+            },
+            shipmentGroupSize: {
+                required: true,
+            },
+            holdRplnTask: {
+                required: true,
+            },
+            needReplenishment: {
+                required: true,
+            }
+        },
+        submitHandler: function(form) {
+            var tableValue = $.common.getTableValue("#form-waveMaster-add");
+            $.operate.save(prefix + "/add", tableValue);
+        }
+    });
+</script>
+</body>
+</html>
diff --git a/src/main/resources/templates/config/waveMaster/edit.html b/src/main/resources/templates/config/waveMaster/edit.html
new file mode 100644
index 0000000..99a49ff
--- /dev/null
+++ b/src/main/resources/templates/config/waveMaster/edit.html
@@ -0,0 +1,225 @@
+<!DOCTYPE HTML>
+<html  lang="zh" xmlns:th="http://www.thymeleaf.org">
+<meta charset="utf-8">
+<head th:include="include :: header"></head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content" th:object="${waveMaster}">
+    <form class="form-horizontal m" id="form-waveMaster-edit">
+        <input name="id" th:field="*{id}">
+        <div class="form-group">
+            <label class="col-sm-3 control-label">主表名称:</label>
+            <div class="col-sm-8">
+                <input id="code" name="code" class="form-control" type="text" th:field="*{code}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">排序:</label>
+            <div class="col-sm-8">
+                <input id="sequence" name="sequence" class="form-control" type="text" th:field="*{sequence}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">出库单条件:</label>
+            <div class="col-sm-8">
+                <input id="shipmentFilterCode" name="shipmentFilterCode" class="form-control" type="text" th:field="*{shipmentFilterCode}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">波次流程:</label>
+            <div class="col-sm-8">
+                <input id="waveFlowCode" name="waveFlowCode" class="form-control" type="text" th:field="*{waveFlowCode}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">状态流程:</label>
+            <div class="col-sm-8">
+                <input id="statusFlowCode" name="statusFlowCode" class="form-control" type="text" th:field="*{statusFlowCode}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">缺货模式:</label>
+            <div class="col-sm-8">
+                <input id="shortMode" name="shortMode" class="form-control" type="text" th:field="*{shortMode}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">订单数限制:</label>
+            <div class="col-sm-8">
+                <input id="maxShipments" name="maxShipments" class="form-control" type="text" th:field="*{maxShipments}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">行数限制数量:</label>
+            <div class="col-sm-8">
+                <input id="maxLines" name="maxLines" class="form-control" type="text" th:field="*{maxLines}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">默认波次创建数量:</label>
+            <div class="col-sm-8">
+                <input id="defaultWaveCreateSize" name="defaultWaveCreateSize" class="form-control" type="text" th:field="*{defaultWaveCreateSize}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">订单分组大小:</label>
+            <div class="col-sm-8">
+                <input id="shipmentGroupSize" name="shipmentGroupSize" class="form-control" type="text" th:field="*{shipmentGroupSize}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">是否补货:</label>
+            <div class="col-sm-8">
+                <div class="radio radio-info radio-inline" style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="needReplenishment1" name="needReplenishment" value="true" th:field="*{needReplenishment}"
+                           class="radio_select">
+                    <label for="needReplenishment1">是</label>
+                </div>
+                <div class="radio radio-danger radio-inline " style="transform: scale(1.1, 1.1);">
+                    <input type="radio" id="needReplenishment2" name="needReplenishment" value="false" th:field="*{needReplenishment}">
+                    <label for="needReplenishment2">否</label>
+                </div>
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">取消波次时保留补货任务:</label>
+            <div class="col-sm-8">
+                <input id="holdRplnTask" name="holdRplnTask" class="form-control" type="text" th:field="*{holdRplnTask}">
+            </div>
+        </div>
+        <!--<div class="form-group">
+            <label class="col-sm-3 control-label">数据版本:</label>
+            <div class="col-sm-8">
+                <input id="version" name="version" class="form-control" type="text">
+            </div>
+        </div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">创建时间:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="created" name="created" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">创建者:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="createdBy" name="createdBy" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">创建时间:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="lastUpdated" name="lastUpdated" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">更新者:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="lastUpdatedBy" name="lastUpdatedBy" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">是否有效:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--&lt;!&ndash;<input id="enable" name="enable" class="form-control" type="text">&ndash;&gt;-->
+        <!--<div class="onoffswitch">-->
+        <!--<input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="enable" name="enable">-->
+        <!--<label class="onoffswitch-label" for="enable">-->
+        <!--<span class="onoffswitch-inner"></span>-->
+        <!--<span class="onoffswitch-switch"></span>-->
+        <!--</label>-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">是否删除:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="deleted" name="deleted" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段1:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef1" name="userDef1" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段2:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef2" name="userDef2" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段3:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef3" name="userDef3" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段4:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef4" name="userDef4" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段5:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef5" name="userDef5" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <div class="form-group">
+            <div class="form-control-static col-sm-offset-9">
+                <button type="submit" class="btn btn-primary">提交</button>
+                <button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
+            </div>
+        </div>
+    </form>
+</div>
+<div th:include="include::footer"></div>
+<script type="text/javascript">
+    var prefix = ctx + "config/waveMaster";
+    $("#form-waveMaster-edit").validate({
+        rules:{
+            code:{
+                required: true,
+            },
+            sequence:{
+                required: true,
+            },
+            shipmentFilterCode:{
+                required: true,
+            },
+            waveFlowCode:{
+                required: true,
+            },
+            statusFlowCode:{
+                required: true,
+            },
+            shortMode: {
+                required: true,
+            },
+            maxShipments: {
+                required: true,
+            },
+            maxLines: {
+                required: true,
+            },
+            defaultWaveCreateSize: {
+                required: true,
+            },
+            shipmentGroupSize: {
+                required: true,
+            },
+            holdRplnTask: {
+                required: true,
+            },
+            needReplenishment: {
+                required: true,
+            }
+        },
+        submitHandler: function(form) {
+            var tableValue = $.common.getTableValue("#form-waveMaster-edit");
+            $.operate.save(prefix + "/edit", tableValue);
+        }
+    });
+</script>
+</body>
+</html>
diff --git a/src/main/resources/templates/config/waveMaster/waveMaster.html b/src/main/resources/templates/config/waveMaster/waveMaster.html
new file mode 100644
index 0000000..c09afd8
--- /dev/null
+++ b/src/main/resources/templates/config/waveMaster/waveMaster.html
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<meta charset="utf-8">
+<head th:include="include :: header"></head>
+<body class="gray-bg">
+<div class="container-div">
+    <div class="row">
+        <div class="col-sm-12 select-info">
+            <form id="waveMaster-form">
+                <div class="select-list">
+                    <ul>
+                        <li>
+                            编码:<input type="text" name="code"/>
+                        </li>
+                        <li>
+                            出库单条件:<input type="text" name="shipmentFilterCode"/>
+                        </li>
+                        <li>
+                            波次流程:<input type="text" name="waveFlowCode"/>
+                        </li>
+                        <li class="time">
+                            <label>创建时间: </label>
+                            <input type="text" class="time-input" id="startTime" placeholder="开始时间" name="createdBegin"/>
+                            <span>-</span>
+                            <input type="text" class="time-input" id="endTime" placeholder="结束时间" name="createdEnd"/>
+                        </li>
+                        <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-success btn-rounded btn-sm" onclick="$.table.exportExcel()" shiro:hasPermission="system:role:export"><i class="fa fa-download"></i>&nbsp;导出</a>-->
+                        </li>
+                    </ul>
+                </div>
+            </form>
+        </div>
+        <div class="btn-group hidden-xs" id="toolbar" role="group">
+            <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" shiro:hasPermission="config:waveMaster:add">
+                <i class="fa fa-plus"></i> 新增
+            </a>
+            <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" shiro:hasPermission="config:waveMaster:remove">
+                <i class="fa fa-trash-o"></i> 删除
+            </a>
+        </div>
+
+        <div class="col-sm-12 select-info">
+            <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table>
+        </div>
+        <div>
+        </div>
+        <div th:include="include :: footer"></div>
+        <script th:inline="javascript">
+            var editFlag = [[${@permission.hasPermi('config:waveMaster:edit')}]];
+            var removeFlag = [[${@permission.hasPermi('config:waveMaster:remove')}]];
+            var prefix = ctx + "config/waveMaster";
+            var datas = [[${@dict.getType('sys_normal_disable')}]];
+            $(function() {
+                var options = {
+                    url: prefix + "/list",
+                    createUrl: prefix + "/add",
+                    updateUrl: prefix + "/edit/{id}",
+                    removeUrl: prefix + "/remove",
+                    modalName: "波次主表",
+                    search: false,
+                    columns: [{
+                        checkbox: true
+                    },
+                        {
+                            field : 'id',
+                            title : 'ID'
+                        },
+                        {
+                            field : 'code',
+                            title : '主表名称'
+                        },
+                        {
+                            field : 'sequence',
+                            title : '排序'
+                        },
+                        {
+                            field : 'shipmentFilterCode',
+                            title : '出库单条件'
+                        },
+                        {
+                            field : 'warehouseCode',
+                            title : '仓库编码',
+                            visible : false
+                        },
+                        {
+                            field : 'waveFlowCode',
+                            title : '波次流程',
+                        },
+                        {
+                            field : 'statusFlowCode',
+                            title : '状态流程',
+                        },
+                        {
+                            field : 'shortMode',
+                            title : '缺货模式',
+                        },
+                        {
+                            field : 'maxShipments',
+                            title : '缺货模式'
+                        },
+                        {
+                            field : 'needReplenishment',
+                            title : '是否补货',
+                            formatter: function (value, item, index) {
+                                if (value==true) {
+                                    return '<span class="badge" style="background-color: #00B83F;color: white;width: 36px;">' + ' 是 ' + '</span>';
+                                }
+                                else if (value==false) {
+                                    return '<span class="badge" style="background-color: #ff0000;color: white;width: 36px;">' + ' 否 ' + '</span>';
+                                }
+                            }
+                        },
+                        {
+                            field : 'maxShipments',
+                            title : '订单数限制'
+                        },
+                        {
+                            field : 'maxLines',
+                            title : '行数限制数量'
+                        },
+                        {
+                            field : 'defaultWaveCreateSize',
+                            title : '默认波次创建数量'
+                        },
+                        {
+                            field : 'shipmentGroupSize',
+                            title : '订单分组大小'
+                        },
+                        {
+                            field : 'holdRplnTask',
+                            title : '取消波次时保留补货任务'
+                        },
+                        {
+                            field : 'created',
+                            title : '创建时间',
+                            visible : false
+                        },
+                        {
+                            field : 'createdBy',
+                            title : '创建用户',
+                            visible : false
+                        },
+                        {
+                            field : 'lastUpdated',
+                            title : '更新时间',
+                            visible : false
+                        },
+                        {
+                            field : 'lastUpdatedBy',
+                            title : '更新用户',
+                            visible : false
+                        },
+                        {
+                            field : 'version',
+                            title : '数据版本',
+                            visible : false
+                        },
+                        {
+                            field : 'processStamp',
+                            title : '处理标记',
+                            visible : false
+                        },
+                        {
+                            field : 'userDef1',
+                            title : '自定义字段1' ,
+                            visible:false
+                        },
+                        {
+                            field : 'userDef2',
+                            title : '自定义字段2' ,
+                            visible:false
+                        },
+                        {
+                            field : 'userDef3',
+                            title : '自定义字段3' ,
+                            visible:false
+                        },
+                        {
+                            field : 'userDef4',
+                            title : '自定义字段4' ,
+                            visible:false
+                        },
+                        {
+                            title: '操作',
+                            align: 'center',
+                            formatter: function(value, row, index) {
+                                var actions = [];
+                                actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')" ><i class="fa fa-edit"></i>编辑</a> ');
+                                actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')" ><i class="fa fa-trash-o"></i>删除</a>');
+                                return actions.join('');
+                            }
+                        }]
+                };
+                $.table.init(options);
+            });
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/resources/templates/receipt/receiptHeader/receiptHeader.html b/src/main/resources/templates/receipt/receiptHeader/receiptHeader.html
index 2f312e9..f28a691 100644
--- a/src/main/resources/templates/receipt/receiptHeader/receiptHeader.html
+++ b/src/main/resources/templates/receipt/receiptHeader/receiptHeader.html
@@ -83,7 +83,7 @@
     var receiptHeaderStatus = [[${@dict.getType('receiptHeaderStatus')}]];
     var printFlag = [[${@permission.hasPermi('receipt:receiptHeader:report')}]];
     var addFlag= [[${@permission.hasPermi('receipt:receiptHeader:add')}]];
-
+    var checkFlag = [[${@permission.hasPermi('receipt:receiptHeader:check')}]];
 
     $(function() {
         var options = {
@@ -272,6 +272,9 @@
                     if ((row.firstStatus >= 100 && row.firstStatus < 200) | (row.lastStatus >= 100 && row.firstStatus < 200)){
                         actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="#" onclick="arrival(\'' + row.id + '\')" ><i class="fa fa-edit"></i>入库预约</a> ');
                     }
+                    if (row.firstStatus == 180 || row.lastStatus == 180) {
+                        actions.push('<a class="btn btn-info btn-xs ' + checkFlag + '" href="#" onclick="check(\'' + row.id + '\')" ><i class="fa fa-edit"></i>入库质检</a> ');
+                    }
                     if (row.lastStatus <= 200){
                         actions.push('<a class="btn btn-primary btn-xs to-receive" ' +addFlag+ ' onclick="Toreceiving(\''+ row.code + '\')"><i class="fa fa-cart-plus"></i>收货</a> ');
                     }
@@ -314,6 +317,12 @@
         storage.receiving_code=code;
         parent.$('.tabReload').click();
     }
+
+    function check(id) {
+        var url = prefix+"/check/"+id;
+        var data = { "id": id };
+        $.operate.submit(url, "post", "json", data);
+    }
 </script>
 </body>
 </html>
\ No newline at end of file
diff --git a/src/main/resources/templates/task/taskHeader/taskHeader.html b/src/main/resources/templates/task/taskHeader/taskHeader.html
index 5b4af3e..8ece898 100644
--- a/src/main/resources/templates/task/taskHeader/taskHeader.html
+++ b/src/main/resources/templates/task/taskHeader/taskHeader.html
@@ -473,7 +473,7 @@
                 return;
             }
             $.modal.confirm("确认要删除选中的" + rows.length + "条数据吗?", function() {
-                var url = ctx + 'task/task/remove';
+                var url = ctx + 'task/taskHeader/remove';
                 var ids = "";
                 for(var i=0; i<rows.length; i++) {
                     ids = ids + rows[i].id + ","