diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index e9ee0b7..6e63918 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,18 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ChangeListManager">
-    <list default="true" id="908d8a6f-e3e4-4fdc-b674-e523a3e2b520" name="Default Changelist" comment="">
-      <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/cycleCountHeader/controller/CycleCountHeaderController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/controller/CycleCountHeaderController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.java" afterDir="false" />
+    <list default="true" id="4d9bac65-d8f6-4ced-8855-0db48f39a5f2" name="Default Changelist" comment="">
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/domain/TaskHeader.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/domain/TaskHeader.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/resources/templates/inventory/adjustDetail/addAdjust.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/inventory/adjustHeader/addAdjust.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/resources/templates/inventory/adjustDetail/adjustDetail.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/inventory/adjustDetail/adjustDetail.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/resources/templates/inventory/adjustDetail/adjustEdit.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/inventory/adjustHeader/adjustEdit.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/resources/templates/inventory/adjustHeader/adjustHeader.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/inventory/adjustHeader/adjustHeader.html" afterDir="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/cycleCountHeader/cycleCountHeader.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/inventory/cycleCountHeader/cycleCountHeader.html" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -47,46 +38,71 @@
         <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" />
         <item name="wms_v2: schema" type="76f4a085:MysqlImplModel$Schema" />
       </path>
+      <path>
+        <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" />
+        <item name="@172.16.29.45" type="feb32156:DbDataSourceImpl" />
+        <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" />
+        <item name="wms_v2: schema" type="76f4a085:MysqlImplModel$Schema" />
+        <item name="task_detail: table" type="285a2a93:MysqlImplModel$Table" />
+      </path>
+      <path>
+        <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" />
+        <item name="@localhost" type="feb32156:DbDataSourceImpl" />
+      </path>
+      <path>
+        <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" />
+        <item name="@localhost" type="feb32156:DbDataSourceImpl" />
+        <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" />
+      </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/cycleCountHeader/controller/CycleCountHeaderController.java">
+        <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="-567">
-              <caret line="44" column="51" selection-start-line="44" selection-start-column="51" selection-end-line="44" selection-end-column="51" />
+            <state relative-caret-position="1710">
+              <caret line="117" column="47" selection-start-line="117" selection-start-column="47" selection-end-line="117" selection-end-column="47" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <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="456">
+              <caret line="31" column="24" selection-start-line="31" selection-start-column="24" selection-end-line="31" selection-end-column="24" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java">
+        <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="8">
-              <caret line="64" column="52" lean-forward="true" selection-start-line="64" selection-start-column="52" selection-end-line="64" selection-end-column="52" />
+            <state relative-caret-position="-1824">
+              <caret line="339" column="44" selection-start-line="339" selection-start-column="29" selection-end-line="339" selection-end-column="44" />
+              <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/cycleCountHeader/cycleCountHeader.html">
+        <entry file="file://$PROJECT_DIR$/pom.xml">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="-12">
-              <caret line="273" column="18" selection-start-line="273" selection-start-column="18" selection-end-line="273" selection-end-column="18" />
+            <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>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html">
+        <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="-87">
-              <caret line="122" selection-start-line="122" selection-end-line="122" />
-              <folding>
-                <element signature="e#6120#12518#0" />
-              </folding>
+            <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>
@@ -110,47 +126,6 @@
   <component name="Git.Settings">
     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
   </component>
-  <component name="IdeDocumentHistory">
-    <option name="CHANGED_PATHS">
-      <list>
-        <option value="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/transfer.html" />
-        <option value="$PROJECT_DIR$/src/main/resources/application-druid.properties" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/mapper/InventoryHeaderMapper.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/mybatis/inventory/InventoryHeaderMapper.xml" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskDetail/domain/TaskDetail.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/mybatis/task/TaskDetailMapper.xml" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/domain/TaskHeader.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/mybatis/task/TaskHeaderMapper.xml" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/domain/InventoryTransaction.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/mybatis/inventory/InventoryTransactionMapper.xml" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/containerType/service/ContainerTypeServiceImpl.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderService.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailService.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/service/ContainerService.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/service/LocationService.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/service/LocationServiceImpl.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/mybatis/config/LocationMapper.xml" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/mapper/ContainerMapper.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/mybatis/config/ContainerMapper.xml" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/mapper/LocationMapper.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.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/resources/templates/inventory/adjustHeader/adjustHeader.html" />
-        <option value="$PROJECT_DIR$/src/main/resources/templates/inventory/adjustDetail/adjustDetail.html" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/controller/CycleCountHeaderController.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java" />
-      </list>
-    </option>
-  </component>
   <component name="JsFlowSettings">
     <service-enabled>true</service-enabled>
     <exe-path />
@@ -179,6 +154,8 @@
       <foldersAlwaysOnTop value="true" />
     </navigator>
     <panes>
+      <pane id="PackagesPane" />
+      <pane id="Scope" />
       <pane id="ProjectPane">
         <subPane>
           <expand>
@@ -189,42 +166,13 @@
             <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" />
@@ -232,9 +180,6 @@
               <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" />
@@ -243,9 +188,6 @@
               <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" />
@@ -255,9 +197,6 @@
               <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" />
@@ -268,34 +207,6 @@
               <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="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" />
@@ -331,19 +242,6 @@
               <item name="pc" type="462c0819:PsiDirectoryNode" />
               <item name="task" type="462c0819:PsiDirectoryNode" />
               <item name="taskHeader" 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="task" type="462c0819:PsiDirectoryNode" />
-              <item name="taskHeader" type="462c0819:PsiDirectoryNode" />
               <item name="service" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
@@ -351,18 +249,6 @@
               <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="task" type="462c0819:PsiDirectoryNode" />
-              <item name="taskPreference" 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>
@@ -373,61 +259,10 @@
               <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>
           </expand>
           <select />
         </subPane>
       </pane>
-      <pane id="PackagesPane" />
-      <pane id="Scope" />
     </panes>
   </component>
   <component name="PropertiesComponent">
@@ -451,12 +286,6 @@
     <property name="nodejs_package_manager_path" value="npm" />
     <property name="settings.editor.selected.configurable" value="Settings.JavaScript" />
   </component>
-  <component name="RecentsManager">
-    <key name="MoveFile.RECENT_KEYS">
-      <recent name="C:\Project\wms2\src\main\resources\templates\inventory\adjustDetail" />
-      <recent name="C:\Project\wms2\src\main\resources\templates\inventory\adjustHeader" />
-    </key>
-  </component>
   <component name="RunDashboard">
     <option name="configurationTypes">
       <set>
@@ -477,7 +306,7 @@
   </component>
   <component name="RunManager">
     <configuration name="HuaHengApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
-      <module name="wms2" />
+      <module name="huaheng" />
       <option name="SPRING_BOOT_MAIN_CLASS" value="com.huaheng.HuaHengApplication" />
       <option name="ALTERNATIVE_JRE_PATH" />
       <option name="UPDATE_ACTION_UPDATE_POLICY" value="UpdateClassesAndResources" />
@@ -492,17 +321,7 @@
       <serviceView>
         <option name="contentProportion" value="0.17857143" />
         <treeState>
-          <expand>
-            <path>
-              <item name="services root" type="e789fda9:ObjectUtils$Sentinel" />
-              <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@b9e1b2d7" type="7427dc5b:ServiceModel$ServiceGroupNode" />
-            </path>
-            <path>
-              <item name="services root" type="e789fda9:ObjectUtils$Sentinel" />
-              <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@b9e1b2d7" type="7427dc5b:ServiceModel$ServiceGroupNode" />
-              <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@67b24c63" type="7427dc5b:ServiceModel$ServiceGroupNode" />
-            </path>
-          </expand>
+          <expand />
           <select />
         </treeState>
       </serviceView>
@@ -513,7 +332,7 @@
   </component>
   <component name="TaskManager">
     <task active="true" id="Default" summary="Default task">
-      <changelist id="908d8a6f-e3e4-4fdc-b674-e523a3e2b520" name="Default Changelist" comment="" />
+      <changelist id="4d9bac65-d8f6-4ced-8855-0db48f39a5f2" name="Default Changelist" comment="" />
       <created>1566977677142</created>
       <option name="number" value="Default" />
       <option name="presentableId" value="Default" />
@@ -523,6 +342,7 @@
       <workItem from="1567038752582" duration="12361000" />
       <workItem from="1567057373550" duration="15293000" />
       <workItem from="1567125196953" duration="16752000" />
+      <workItem from="1567643852002" duration="245000" />
     </task>
     <task id="LOCAL-00001" summary="入库单添加时添加流程标记,审核入库单">
       <created>1566983055587</created>
@@ -583,73 +403,48 @@
     <option name="localTasksCounter" value="9" />
     <servers />
   </component>
+  <component name="TimeTrackingManager">
+    <option name="totallyTimeSpent" value="2000" />
+  </component>
   <component name="ToolWindowManager">
     <frame x="-7" y="-7" width="1550" height="838" extended-state="6" />
     <editor active="true" />
     <layout>
-      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.19839142" />
+      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.28016084" />
       <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 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="Find" order="1" />
       <window_info anchor="bottom" id="Run" order="2" />
-      <window_info anchor="bottom" id="Debug" order="3" weight="0.29036826" />
+      <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="Docker" order="7" show_stripe_button="false" />
-      <window_info anchor="bottom" id="Version Control" order="8" sideWeight="0.49932975" weight="0.08073654" />
-      <window_info anchor="bottom" id="Database Changes" order="9" weight="0.3286119" />
-      <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.6090652" />
-      <window_info anchor="bottom" id="Messages" order="13" weight="0.04249292" />
-      <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.17280453" />
+      <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.50067025" side_tool="true" weight="0.22946176" />
+      <window_info anchor="bottom" id="Messages" order="11" weight="0.18696883" />
+      <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.3286119" />
+      <window_info anchor="bottom" id="Run Dashboard" order="15" sideWeight="0.49932975" visible="true" weight="0.22946176" />
       <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="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" />
@@ -666,14 +461,7 @@
               <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>
@@ -695,7 +483,6 @@
     </option>
   </component>
   <component name="VcsManagerConfiguration">
-    <option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
     <MESSAGE value="盘点明细页面" />
     <MESSAGE value="入库单添加时添加流程标记,审核入库单" />
     <MESSAGE value="添加入库单历史" />
@@ -708,9 +495,7 @@
     <MESSAGE value="库存和任务移库相关" />
     <MESSAGE value="库存移库生成和完成逻辑" />
     <MESSAGE value="xml" />
-    <MESSAGE value="空托出入库,完成逻辑" />
-    <MESSAGE value="pull" />
-    <option name="LAST_COMMIT_MESSAGE" value="pull" />
+    <option name="LAST_COMMIT_MESSAGE" value="xml" />
   </component>
   <component name="XDebuggerManager">
     <breakpoint-manager>
@@ -769,386 +554,13 @@
           <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>47</line>
+          <properties />
+          <option name="timeStamp" value="37" />
+        </line-breakpoint>
       </breakpoints>
     </breakpoint-manager>
   </component>
-  <component name="editorHistoryManager">
-    <entry file="jar://C:/Program Files/Java/jdk1.8.0_202/src.zip!/com/sun/jmx/snmp/tasks/Task.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="330">
-          <caret line="57" column="17" selection-start-line="57" selection-start-column="17" selection-end-line="57" selection-end-column="17" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerDetail/service/ReceiptContainerDetailServiceImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="80">
-          <caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerDetail/service/ReceiptContainerDetailService.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="60">
-          <caret line="4" column="62" selection-start-line="4" selection-start-column="62" selection-end-line="4" selection-end-column="62" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-core/3.1.2/mybatis-plus-core-3.1.2.jar!/com/baomidou/mybatisplus/core/mapper/BaseMapper.class">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="80">
-          <caret line="13" column="43" lean-forward="true" selection-start-line="13" selection-start-column="43" selection-end-line="13" selection-end-column="43" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/task/TaskDetailMapper.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="464">
-          <caret line="54" column="25" lean-forward="true" selection-start-line="54" selection-start-column="25" selection-end-line="54" selection-end-column="25" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskDetail/mapper/TaskDetailMapper.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="100">
-          <caret line="6" column="1" lean-forward="true" selection-start-line="6" selection-start-column="1" selection-end-line="6" selection-end-column="1" />
-        </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="304">
-          <caret line="43" column="19" selection-start-line="43" selection-start-column="19" selection-end-line="43" selection-end-column="19" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskDetail/service/TaskDetailServiceImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="80">
-          <caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskDetail/service/TaskDetailService.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="60">
-          <caret line="4" column="17" selection-start-line="4" selection-start-column="17" selection-end-line="4" selection-end-column="17" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/domain/ShipmentTaskCreateModel.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-12">
-          <caret line="5" column="13" selection-start-line="5" selection-start-column="13" selection-end-line="5" selection-end-column="13" />
-        </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="322">
-          <caret line="18" column="4" selection-start-line="18" selection-start-column="4" selection-end-line="18" selection-end-column="4" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/inventory/InventoryTransactionMapper.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="308">
-          <caret line="28" column="50" selection-start-line="28" selection-start-column="50" selection-end-line="28" selection-end-column="50" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/mapper/InventoryTransactionMapper.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="80">
-          <caret line="5" column="17" selection-start-line="5" selection-start-column="17" selection-end-line="5" selection-end-column="17" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/domain/TaskHeader.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1048">
-          <caret line="316" column="69" selection-start-line="316" selection-start-column="69" selection-end-line="316" selection-end-column="69" />
-        </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="324">
-          <caret line="179" column="18" selection-start-line="179" selection-start-column="18" selection-end-line="179" selection-end-column="18" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/containerType/service/ContainerTypeServiceImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="400">
-          <caret line="31" selection-start-line="31" selection-end-line="31" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/templates/config/container/add.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="164">
-          <caret line="10" column="95" selection-start-line="10" selection-start-column="95" selection-end-line="10" selection-end-column="95" />
-        </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="120">
-          <caret line="11" column="78" selection-start-line="11" selection-start-column="78" selection-end-line="11" selection-end-column="78" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/transfer.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-264">
-          <caret line="13" column="54" selection-start-line="13" selection-start-column="54" selection-end-line="13" selection-end-column="54" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://C:/Program Files/Java/jdk1.8.0_202/src.zip!/java/util/function/Function.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="460">
-          <caret line="46" column="32" selection-start-line="46" selection-start-column="32" selection-end-line="46" selection-end-column="32" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/service/InventoryTransactionService.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="60">
-          <caret line="4" column="17" selection-start-line="4" selection-start-column="17" selection-end-line="4" selection-end-column="17" />
-        </state>
-      </provider>
-    </entry>
-    <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="216">
-          <caret line="37" column="20" selection-start-line="37" selection-start-column="20" selection-end-line="37" selection-end-column="20" />
-          <folding>
-            <element signature="e#1400#1401#0" expanded="true" />
-            <element signature="e#1463#1464#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderService.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="100">
-          <caret line="8" column="61" selection-start-line="8" selection-start-column="61" selection-end-line="8" selection-end-column="61" />
-        </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="185">
-          <caret line="335" column="16" lean-forward="true" selection-start-line="335" selection-start-column="16" selection-end-line="335" selection-end-column="16" />
-          <folding>
-            <element signature="e#4822#10729#0" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailService.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="140">
-          <caret line="9" selection-start-line="9" selection-end-line="9" />
-        </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="173">
-          <caret line="104" column="25" selection-start-line="104" selection-start-column="25" selection-end-line="104" selection-end-column="25" />
-        </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="200">
-          <caret line="15" selection-start-line="15" selection-end-line="15" />
-        </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="436">
-          <caret line="50" column="23" selection-start-line="50" selection-start-column="23" selection-end-line="50" selection-end-column="23" />
-        </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="180">
-          <caret line="14" selection-start-line="14" selection-end-line="14" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/mapper/LocationMapper.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="280">
-          <caret line="16" column="1" lean-forward="true" selection-start-line="16" selection-start-column="1" selection-end-line="16" selection-end-column="1" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/config/LocationMapper.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="446">
-          <caret line="49" column="132" lean-forward="true" selection-start-line="49" selection-start-column="132" selection-end-line="49" selection-end-column="132" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/service/LocationServiceImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="326">
-          <caret line="116" column="7" lean-forward="true" selection-start-line="116" selection-start-column="7" selection-end-line="116" selection-end-column="7" />
-          <folding>
-            <element signature="e#4932#4933#0" expanded="true" />
-            <element signature="e#4992#4993#0" expanded="true" />
-          </folding>
-        </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="392">
-          <caret line="123" column="13" lean-forward="true" selection-start-line="123" selection-start-column="13" selection-end-line="123" selection-end-column="13" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/service/LocationService.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="220">
-          <caret line="12" column="96" selection-start-line="12" selection-start-column="96" selection-end-line="12" selection-end-column="96" />
-        </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="216">
-          <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="363">
-          <caret line="924" lean-forward="true" selection-start-line="924" selection-end-line="924" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/service/InventoryTransactionServiceImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="80">
-          <caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="671">
-          <caret line="60" column="12" selection-start-line="60" selection-start-column="12" selection-end-line="60" selection-end-column="12" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-525">
-          <caret line="44" column="22" selection-start-line="44" selection-start-column="22" selection-end-line="44" selection-end-column="22" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/controller/InventoryTransactionController.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-1060">
-          <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/inventory/inventoryHeader/controller/InventoryHeaderController.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1531">
-          <caret line="214" column="20" selection-start-line="214" selection-start-column="20" selection-end-line="214" selection-end-column="20" />
-        </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="367">
-          <caret line="117" column="42" selection-start-line="117" selection-start-column="42" selection-end-line="117" selection-end-column="42" />
-        </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="-12">
-          <caret line="273" column="18" selection-start-line="273" selection-start-column="18" selection-end-line="273" selection-end-column="18" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/static/huaheng/js/huahengUI.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="304">
-          <caret line="44" column="25" lean-forward="true" selection-start-line="43" selection-start-column="52" selection-end-line="44" selection-end-column="25" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/adjustDetail/adjustDetail.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="196">
-          <caret line="323" column="16" lean-forward="true" selection-start-line="323" selection-start-column="16" selection-end-line="323" selection-end-column="16" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/adjustHeader/adjustHeader.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="163">
-          <caret line="187" column="30" lean-forward="true" selection-start-line="187" selection-start-column="30" selection-end-line="187" selection-end-column="30" />
-          <folding>
-            <element signature="n#style#0;n#a#0;n#!!top" expanded="true" />
-          </folding>
-        </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="167">
-          <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/domain/CycleCountDetail.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="120">
-          <caret line="13" column="13" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" />
-        </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="-87">
-          <caret line="122" selection-start-line="122" selection-end-line="122" />
-          <folding>
-            <element signature="e#6120#12518#0" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/controller/CycleCountHeaderController.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-567">
-          <caret line="44" column="51" selection-start-line="44" selection-start-column="51" selection-end-line="44" selection-end-column="51" />
-        </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="8">
-          <caret line="64" column="52" lean-forward="true" selection-start-line="64" selection-start-column="52" selection-end-line="64" selection-end-column="52" />
-        </state>
-      </provider>
-    </entry>
-  </component>
 </project>
\ No newline at end of file
diff --git a/src/main/java/com/huaheng/pc/task/taskDetail/domain/TaskDetail.java b/src/main/java/com/huaheng/pc/task/taskDetail/domain/TaskDetail.java
index de5dffd..c65d492 100644
--- a/src/main/java/com/huaheng/pc/task/taskDetail/domain/TaskDetail.java
+++ b/src/main/java/com/huaheng/pc/task/taskDetail/domain/TaskDetail.java
@@ -57,6 +57,14 @@ public class TaskDetail implements Serializable {
     @ApiModelProperty(value="货主")
     private String companyCode;
 
+
+    /**
+     * 组盘子id
+     */
+    @TableField(value = "allocationId")
+    @ApiModelProperty(value="组盘子id")
+    private String allocationId;
+
     /**
      * 单据编码
      */
@@ -162,12 +170,6 @@ public class TaskDetail implements Serializable {
     @ApiModelProperty(value="参考单号")
     private String referenceCode;
 
-    /**
-     * 参考内部号
-     */
-    @TableField(value = "referenceId")
-    @ApiModelProperty(value="参考内部号")
-    private Integer referenceId;
 
     /**
      * 参考内部行号
@@ -379,6 +381,8 @@ public class TaskDetail implements Serializable {
 
     public static final String COL_COMPANYCODE = "companyCode";
 
+    public static final String COL_ALLOCATIONID= "allocationId";
+
     public static final String COL_BILLCODE= "billCode";
 
     public static final String COL_BILLDETAILID= "billDetailId";
diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java
index 5188646..efd5185 100644
--- a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java
+++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java
@@ -31,6 +31,8 @@ public interface TaskHeaderService extends IService<TaskHeader>{
 
     AjaxResult createReceiptTask(List<Integer> ids);
 
+    void completeShipmentTask(TaskHeader task) ;
+
     Integer UncompleteCount(String containerCode);
 
 
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 ae3f2de..6aa169b 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
@@ -30,12 +30,21 @@ import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerD
 import com.huaheng.pc.shipment.shipmentContainerDetail.service.ShipmentContainerDetailService;
 import com.huaheng.pc.shipment.shipmentContainerHeader.domain.ShipmentContainerHeader;
 import com.huaheng.pc.shipment.shipmentContainerHeader.service.ShipmentContainerHeaderService;
+import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail;
+import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailService;
 import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader;
+import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService;
 import com.huaheng.pc.task.taskDetail.domain.TaskDetail;
 import com.huaheng.pc.task.taskDetail.service.TaskDetailService;
 import com.huaheng.pc.task.taskHeader.domain.ShipmentTaskCreateModel;
+import org.jsoup.helper.DataUtil;
 import org.springframework.stereotype.Service;
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 import java.util.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
@@ -74,6 +83,13 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
     @Resource
     private ReceiptContainerDetailService receiptContainerDetailService;
     @Resource
+    private ShipmentHeaderService shipmentHeaderService;
+    @Resource
+    private ShipmentDetailService shipmentDetailService;
+
+
+
+    @Resource
     private ReceiptContainerHeaderService receiptContainerHeaderService;
     @Resource
     private TaskHeaderMapper taskHeaderMapper;
@@ -206,7 +222,12 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
     /**
      * 下发WCS执行任务
      */
+    /**
+     *
+     * 执行任务
+     * */
     @Override
+    @Transactional
     public AjaxResult<TaskHeader> sendTaskToWcs(Integer[] taskIds) {
         TaskHeader task = null;
         for (Integer taskId : taskIds) {
@@ -221,7 +242,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             task.setLastUpdatedBy(ShiroUtils.getLoginName());
             LambdaUpdateWrapper<TaskHeader> HeaderUpdateWrapper = Wrappers.lambdaUpdate();
             HeaderUpdateWrapper.eq(TaskHeader::getId, taskId);
-            taskHeaderService.update(task, HeaderUpdateWrapper);
+            if (!taskHeaderService.update(task, HeaderUpdateWrapper))
+                throw new ServiceException("更新任务头失败");
             //修改任务明细状态
             TaskDetail record = new TaskDetail();
             record.setStatus(10);
@@ -229,38 +251,24 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             record.setLastUpdatedBy(ShiroUtils.getLoginName());
             LambdaUpdateWrapper<TaskDetail> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
             lambdaUpdateWrapper.eq(TaskDetail::getTaskId, task.getId());
-            taskDetailService.update(record, lambdaUpdateWrapper);
-
-
-//            if (task.getInternalTaskType().equals("100"))
-//            {
-//                List<Map<String, Object>> maps = taskDetailService.selectListMapByEqual("billId, billDetailId", condition);
-//                for (Map<String, Object> item : maps){
-//                    Integer billDetailId = DataUtils.getInteger(item.get("billDetailId"));
-//                    receiptHeaderService.updateDetailStatus(billDetailId, (short)300);
-//                }
-//                maps.stream().map(X -> X.get("billId")).distinct().forEach(X -> receiptHeaderService.receiptStatusUpdate(DataUtils.getInteger(X), (short)300));
-//            }
-//            //盘点单执行
-//            if(task.getType() == 700){
-//                CyclecountDetail cyclecountDetai = cyclecountDetailService.selectEntityById(
-//                        task.getAllocationHeadId());
-//                cyclecountDetai.setStatus(10);
-//                cyclecountDetailService.updateByModel(cyclecountDetai);
-//            }
-////            //如果是单排人工库,那么出入库都是先完成,在下发AGV任务
-////            if (task.getType().intValue() == 300 || task.getType().intValue() == 600)   {
-////                if (task.getSourceLocation().startsWith("L03") == false )   {
-////                    taskAgvService.createTaskAgv(task);
-////                }
-////            }
-////            else    {
-////                taskAgvService.createTaskAgv(task);
-////            }
-//            //任务类型是出库,那就完成任务在叫agv
-//            if (task.getType().intValue() == 100 || task.getType().intValue() == 500)   {
-//                taskAgvService.createTaskAgv(task);
-//            }
+            if (!taskDetailService.update(record, lambdaUpdateWrapper)){
+                throw new ServiceException("更新任务明细失败");
+            }
+            //修改入库明细
+            ReceiptDetail receiptDetail = receiptDetailService.queryflow(receiptDetailService.getById(record.getId()));
+            if (!receiptDetailService.updateById(receiptDetail)){
+                throw new ServiceException("更新状态失败");
+            }
+            receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId());
+            //修改组盘表状态为20
+            ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail();
+            receiptContainerDetail.setStatus(20);
+            receiptContainerDetail.setLastUpdated(new Date());
+            receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
+            LambdaUpdateWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate();
+            receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getReceiptId,receiptDetail.getReceiptId());
+            if (! receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper))
+                throw new ServiceException("更新组盘状态失败");
         }
         return AjaxResult.success("下发任务成功", task);
     }
@@ -294,13 +302,13 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
      */
     public void completeTask(TaskHeader task) throws Exception {
         //区分任务类型
-        if (task.getInternalTaskType() == 100 || task.getInternalTaskType() == 200) {
+        if (task.getInternalTaskType() == 100) {
             //入库任务
             completeReceiptTask(task);
         }
-        if (task.getInternalTaskType() == 300 || task.getInternalTaskType() == 400) {
-//            //出库任务
-//            completeShipmentTask(task);
+        if (task.getInternalTaskType() == 200) {
+//            出库任务
+            completeShipmentTask(task);
         }
         // 700 盘点    900 出库查看,包过空托出库查看
         if (task.getInternalTaskType() == 700 || task.getInternalTaskType() == 900) {
@@ -322,9 +330,10 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
 
 
     /**
-     *
+     *完成任务
      */
     @Override
+    @Transactional
     public AjaxResult completeReceiptTask(TaskHeader task) throws Exception {
         List<Map<String, Object>> taskReceiptContainerDetail = taskHeaderMapper.getReceiptTask(task.getId());
         if (taskReceiptContainerDetail.size() < 1) {
@@ -345,13 +354,16 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                     header.setWarehouseCode(DataUtils.getString(map.get("warehouseCode")));//仓库
                     header.setCompanyCode(task.getCompanyCode());//货主
                     header.setContainerCode(DataUtils.getString(map.get("containerCode")));//容器号
+                    header.setLocationCode(task.getToLocation());
                     header.setTotalQty(DataUtils.getInteger(map.get("totalQty")));//总数量
                     header.setLocking(1);
                     header.setEnable(1);
                     header.setCreatedBy(ShiroUtils.getLoginName());
                     header.setCreated(new Date());
                     header.setLastUpdated(new Date());
-                    inventoryHeaderService.save(header);
+                    if (!inventoryHeaderService.save(header))
+                        throw new ServiceException("添加库存单失败");
+
                     //库存明细添加
                     detail = new InventoryDetail();
                     detail.setInventoryHeaderId(header.getId());//库存头ID
@@ -367,19 +379,23 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                     detail.setBatch(DataUtils.getString(map.get("batch")));//批次
                     detail.setLot(DataUtils.getString(map.get("lot")));//批号
                     detail.setInventorySts(DataUtils.getString(map.get("inventorySts")));//库存状态
-                    detail.setManufactureDate(DataUtils.getDateTime(map.get("manufactureDate")));//生产日期
-                    detail.setExpirationDate(DataUtils.getDateTime(map.get("expirationDate")));//失效日期
+                    detail.setManufactureDate(new SimpleDateFormat("yyyy-MM-dd").parse(map.get("manufactureDate").toString()));//生产日期
+//                    detail.setExpirationDate(new SimpleDateFormat("yyyy-MM-dd").parse(map.get("expirationDate").toString()));//失效日期
                     detail.setQty(DataUtils.getBigDecimal(map.get("qty")));//数量
                     detail.setTaskQty(DataUtils.getBigDecimal(map.get("qty")));
                     detail.setCreatedBy(ShiroUtils.getLoginName());//创建人
                     detail.setLastUpdatedBy(ShiroUtils.getLoginName());//创建时间
-                    inventoryDetailService.save(detail);
-                } else {
+                    if (!inventoryDetailService.save(detail))
+                        throw new ServiceException("添加库存明细失败");
+                    }
+                 else {
                     detail.setQty(detail.getQty().add(DataUtils.getBigDecimal(map.get("qty"))));
                     detail.setLastUpdatedBy(ShiroUtils.getLoginName());
                     LambdaUpdateWrapper<InventoryDetail> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
-                    lambdaUpdateWrapper.eq(InventoryDetail::getId, DataUtils.getInteger(map.get("receiptDetailId")));
-                    inventoryDetailService.update(detail, lambdaUpdateWrapper);
+                    lambdaUpdateWrapper.eq(InventoryDetail::getId,DataUtils.getInteger(map.get("receiptDetailId")));
+                    if (!inventoryDetailService.update(detail, lambdaUpdateWrapper))
+                        throw new ServiceException("更新入库单明细失败");
+
                 }
                 //记录库存交易记录
                 InventoryTransaction inventoryTransaction = new InventoryTransaction();
@@ -394,28 +410,49 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 inventoryTransaction.setBillDetailId(DataUtils.getInteger(map.get("receiptDetailId")));
                 inventoryTransaction.setBatch(DataUtils.getString(map.get("batch")));
                 inventoryTransaction.setLot(DataUtils.getString(map.get("lot")));
-                inventoryTransaction.setManufactureDate(DataUtils.getDateTime(map.get("manufactureDate")));
-                inventoryTransaction.setExpirationDate(DataUtils.getDateTime(map.get("expirationDate")));
+                inventoryTransaction.setManufactureDate(new SimpleDateFormat("yyyy-MM-dd").parse(map.get("manufactureDate").toString()));//生产日期
+//                inventoryTransaction.setExpirationDate(DataUtils.getDateTime(map.get("expirationDate")));
                 inventoryTransaction.setInventorySts(DataUtils.getString((map.get("inventorySts"))));
                 inventoryTransaction.setTaskQty(DataUtils.getInteger(map.get("qty")));
                 inventoryTransaction.setCreated(new Date());
                 inventoryTransaction.setCreatedBy(ShiroUtils.getLoginName());
-                inventoryTransactionService.save(inventoryTransaction);
+                if (!inventoryTransactionService.save(inventoryTransaction))
+                    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")));
+                lambdaUpdateWrapper.eq(TaskDetail::getTaskId,task.getId());
                 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);
+                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);
@@ -423,25 +460,43 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 task.setLastUpdated(new Date());
                 LambdaUpdateWrapper<TaskHeader> taskHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate();
                 taskHeaderLambdaUpdateWrapper.eq(TaskHeader::getId, task.getId());
-                taskHeaderService.update(task, taskHeaderLambdaUpdateWrapper);
+                if (!taskHeaderService.update(task, taskHeaderLambdaUpdateWrapper))
+                    throw new ServiceException("更新任务主表失败");
+
                 //修改库位状态和对应的容器
                 Location location = new Location();
                 location.setContainerCode(task.getContainerCode());
                 location.setStatus("empty");
                 LambdaUpdateWrapper<Location> locationLambdaUpdateWrapper = Wrappers.lambdaUpdate();
                 locationLambdaUpdateWrapper.eq(Location::getCode, task.getToLocation());
-                locationService.update(location, locationLambdaUpdateWrapper);
+                if (!locationService.update(location, locationLambdaUpdateWrapper))
+                    throw new ServiceException("更新库位失败");
+
                 //修改容器状态和对应的库位
                 Container container = new Container();
                 container.setLocationCode(task.getToLocation());
                 container.setStatus("some");
-                //修改组盘表状态为20
+                if (!containerService.save(container)){
+                    throw new ServiceException("更新容器失败");
+                }
+               //修改组盘表状态为20
                 ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail();
                 receiptContainerDetail.setStatus(20);
+                receiptContainerDetail.setProcessStamp("0");
+                receiptContainerDetail.setLastUpdated(new Date());
+                receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
                 LambdaUpdateWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate();
                 receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getReceiptId, DataUtils.getInteger(map.get("receiptId")));
-                receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper);
+                if (! receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper))
+                    throw new ServiceException("更新组盘状态失败");
+                //修改入库明细
+                ReceiptDetail receiptDetail = receiptDetailService.queryflow(receiptDetailService.getById(DataUtils.getInteger(map.get("receiptDetailId"))));
+                if (!receiptDetailService.updateById(receiptDetail)){
+                    throw new ServiceException("更新状态失败");
+                }
+                receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId());
             }
+
         }
         return AjaxResult.success("完成入库任务");
     }
@@ -848,7 +903,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
 
     /**
      * 创建上架任务
-     *
      * @param ids
      * @return
      */
@@ -933,5 +987,108 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
 
 
 
+    /**
+     *
+     * 完成出库任务
+     * */
+    @Override
+    public void completeShipmentTask(TaskHeader task) {
+        //获取所有子任务
+        TaskDetail condition = new TaskDetail();
+        condition.setTaskId(task.getId());
+        LambdaQueryWrapper<TaskDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(condition);
+        List<TaskDetail> taskDetails = taskDetailService.list(lambdaQueryWrapper);
+        List<Integer> shipmentHeadIds = new ArrayList<>();
+        for(TaskDetail taskDetail : taskDetails){
+            if(taskDetail.getStatus()<20){
+                //获取出库子货箱
+                ShipmentContainerDetail shipmentContainerDetail = shipmentContainerDetailService.getById(taskDetail.getAllocationId());
+                //取出子单据
+                ShipmentDetail shipmentDetail = shipmentDetailService.getById(taskDetail.getBillDetailId());
+                //暂存id,为更新单据状态准备
+                shipmentHeadIds.add(shipmentDetail.getShipmentId());
+                //获取对应库存记录
+                InventoryDetail inventoryDetail = inventoryDetailService.getById(taskDetail.getToInventoryId());
+                if (inventoryDetail == null)  {
+                    throw new ServiceException("任务明细对应的库存ID【" + taskDetail.getToInventoryId().toString() + "】不存在!");
+                }
+                BigDecimal orignalQty = inventoryDetail.getQty();
+                //扣减库存
+                inventoryDetail.setTaskQty(inventoryDetail.getTaskQty().subtract(taskDetail.getQty()));
+                inventoryDetail.setQty(inventoryDetail.getQty().subtract(taskDetail.getQty()));
+                if(inventoryDetail.getQty().compareTo(new BigDecimal("0"))==0 && inventoryDetail.getTaskQty().compareTo(new BigDecimal("0"))==0){
+                    //如果库存没有了,就删除这个库存
+                    inventoryDetailService.removeById(inventoryDetail.getId());
+                }else {
+                    //否则更新这个库存
+                    inventoryDetailService.updateById(inventoryDetail);
+                }
+                //设置子任务状态为已执行
+                taskDetail.setStatus(100);
+                taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
+                taskDetail.setLastUpdated(new Date());   //完成时间
+                taskDetailService.updateById(taskDetail);
+                //记录库存交易记录
+                InventoryTransaction inventoryTransaction = new InventoryTransaction();
+                inventoryTransaction.setWarehouseCode(task.getWarehouseCode());
+                inventoryTransaction.setCompanyCode(shipmentDetail.getCompanyCode());
+                inventoryTransaction.setLocationCode(inventoryDetail.getLocationCode());
+                inventoryTransaction.setContainerCode(inventoryDetail.getContainerCode());
+                inventoryTransaction.setTransactionType(20);
+                inventoryTransaction.setMaterialCode(shipmentDetail.getMaterialCode());
+                //inventory.setMaterialName(DataUtils.getString(taskDetail.getMaterialName()));//物料名称
+                inventoryTransaction.setBillCode(taskDetail.getBillCode());
+                inventoryTransaction.setBillDetailId(shipmentDetail.getId());
+                inventoryTransaction.setBatch(shipmentDetail.getBatch());
+                inventoryTransaction.setLot(shipmentDetail.getLot());
+                inventoryTransaction.setManufactureDate(shipmentDetail.getManufactureDate());
+                inventoryTransaction.setExpirationDate(shipmentDetail.getExpirationDate());
+                inventoryTransaction.setInventorySts(inventoryDetail.getInventorySts());
+                //这里取反,更符合出库的语义,同时方便对记录进行统计
+                inventoryTransaction.setTaskQty(taskDetail.getQty().intValue());
+//                inventoryTransaction.setCostPrice(shipmentDetail.);
+                inventoryTransaction.setCreated(null);
+                inventoryTransaction.setCreatedBy(ShiroUtils.getLoginName());
+                inventoryTransactionService.save(inventoryTransaction);
+//                //更新单据状态
+//                shipmentHeaderService.updateShipmentStatus(shipmentHeader.getId());
+            }
+        }
+        //设置主任务为已执行
+        task.setStatus(100);
+        task.setLastUpdatedBy(ShiroUtils.getLoginName());
+        task.setLastUpdated(new Date());
+        taskHeaderService.updateById(task);
+        //将库位状态改为空闲,如果是整出的对应的容器也清空
+        Location locationRecord = new Location();
+        locationRecord.setStatus("empty");
+        if(task.getTaskType()==300) {
+            locationRecord.setContainerCode("");
+        }
+        LambdaUpdateWrapper<Location> locationLambdaUpdateWrapper = Wrappers.lambdaUpdate();
+                locationLambdaUpdateWrapper.eq(Location::getCode,task.getToLocation());
+        locationService.update(locationLambdaUpdateWrapper);
+        //如果是整出,删掉这个库位上的这个托盘,否则更改托盘状态
+        Container containerRecord = new Container();
+//        if(task.getTaskType()==300) {
+//            containerService.updateLocationCodeAndStatus(task.getContainerCode(),"","empty");
+//        }
+//        else{
+//            //查询是否存在关联的库存,入如果没有就修改容器状态为empty
+//            Inventory inventoryCondition = new Inventory();
+//            inventoryCondition.setLocationCode(task.getSourceLocation());
+//            Map<String, Object> map = inventoryService.selectFirstMap("id", inventoryCondition);
+//            if (map == null) {
+//                //如果没有库存就设置为empty
+//                containerService.updateStatus(task.getContainerCode(), "empty");
+//            }
+//        }
+//        //设置出库货箱状态为拣货任务完成
+//        shipmentContainerHeaderService.resetStatusShipmentContainer(task.getAllocationHeadId(),(short)20);
+        //最后更新单据状态
+        shipmentHeadIds.stream().distinct().forEach(t->shipmentHeaderService.updateShipmentStatus(t));
+
+    }
+
 
 }
diff --git a/src/main/resources/templates/task/taskDetail/taskDetail.html b/src/main/resources/templates/task/taskDetail/taskDetail.html
index 81ab149..0479d47 100644
--- a/src/main/resources/templates/task/taskDetail/taskDetail.html
+++ b/src/main/resources/templates/task/taskDetail/taskDetail.html
@@ -72,12 +72,12 @@
                     sortable:true
 				},
 				{
-					field : 'sourceLocation', 
+					field : 'fromLocation',
 					title : '源库位',
                     sortable:true
 				},
 				{
-					field : 'destinationLocation', 
+					field : 'toLocation',
 					title : '目的库位',
                     sortable:true
 				},
diff --git a/src/main/resources/templates/task/taskHeader/taskHeader.html b/src/main/resources/templates/task/taskHeader/taskHeader.html
index a18ca42..5b4af3e 100644
--- a/src/main/resources/templates/task/taskHeader/taskHeader.html
+++ b/src/main/resources/templates/task/taskHeader/taskHeader.html
@@ -32,7 +32,7 @@
 									</li>
 
 									<li>
-										库位编号:<input type="text" name="locationCode"/>
+										库位编号:<input type="text" name="toLocation"/>
 									</li>
 									<li class="time" style="height: 30px">
 										<label>创建时间: </label>
@@ -171,7 +171,7 @@
 
 				},
                  {
-                        field : 'locationCode',
+                        field : 'toLocation',
                         title : '库位号',
                         visible:true
                    },
@@ -234,7 +234,7 @@
                             actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>取消</a> ');
                             actions.push('<a class="btn btn-primary btn-xs ' + completeFlag + '" href="#" onclick="complete(\'' + row.id + '\')"><i class="fa fa-check"></i>完成</a>');
                         }
-						if (row.status >=10)  {
+						if (row.status >= 10 && row.status < 100)  {
 							actions.push('<a class="btn btn-primary btn-xs ' + completeFlag + '" href="#" onclick="complete(\'' + row.id + '\')"><i class="fa fa-check"></i>完成</a>');
 						}
                         return actions.join('');