diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 4d3725e..3fd31cb 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,25 +1,10 @@
 <?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 afterPath="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyCheckOut.html" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyContainer.html" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyIn.html" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyOut.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
+    <list default="true" id="908d8a6f-e3e4-4fdc-b674-e523a3e2b520" name="Default Changelist" comment="pull">
       <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/config/container/mapper/ContainerMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/mapper/ContainerMapper.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/service/ContainerService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/service/ContainerService.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderService.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" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/mapper/TaskHeaderMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/mapper/TaskHeaderMapper.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.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/mybatis/config/ContainerMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mybatis/config/ContainerMapper.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/resources/mybatis/task/TaskHeaderMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mybatis/task/TaskHeaderMapper.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/inventoryHeader.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/inventoryHeader.html" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -68,11 +53,23 @@
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
+      <file pinned="false" current-in-tab="false">
         <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="291">
-              <caret line="189" column="11" lean-forward="true" selection-start-line="189" selection-start-column="11" selection-end-line="189" selection-end-column="11" />
+            <state relative-caret-position="1994">
+              <caret line="214" column="20" selection-start-line="214" selection-start-column="20" selection-end-line="214" 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/task/taskHeader/service/TaskHeaderServiceImpl.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="-14488">
+              <caret line="66" column="13" selection-start-line="66" selection-start-column="13" selection-end-line="66" selection-end-column="13" />
+              <folding>
+                <element signature="imports" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
@@ -107,31 +104,20 @@
         <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/inventoryHeader/service/InventoryHeaderServiceImpl.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/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/controller/InventoryTransactionController.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyInOut.html" />
-        <option value="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyIn.html" />
-        <option value="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyOut.html" />
-        <option value="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/inventoryHeader.html" />
-        <option value="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyContainer.html" />
-        <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/container/mapper/ContainerMapper.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/task/taskHeader/mapper/TaskHeaderMapper.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/mybatis/task/TaskHeaderMapper.xml" />
         <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/InventoryHeaderService.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/mybatis/config/ContainerMapper.xml" />
-        <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java" />
       </list>
     </option>
   </component>
@@ -589,7 +575,6 @@
     <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
     <property name="WebServerToolWindowFactoryState" value="false" />
     <property name="aspect.path.notification.shown" value="true" />
-    <property name="last_opened_file_path" value="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader" />
     <property name="list.type.of.created.stylesheet" value="CSS" />
     <property name="node.js.detected.package.eslint" value="true" />
     <property name="node.js.path.for.package.eslint" value="project" />
@@ -599,11 +584,6 @@
     <property name="nodejs_package_manager_path" value="npm" />
     <property name="settings.editor.selected.configurable" value="Settings.JavaScript" />
   </component>
-  <component name="RecentsManager">
-    <key name="CopyFile.RECENT_KEYS">
-      <recent name="C:\Project\wms2\src\main\resources\templates\inventory\inventoryHeader" />
-    </key>
-  </component>
   <component name="RunDashboard">
     <option name="configurationTypes">
       <set>
@@ -734,7 +714,7 @@
     <frame x="-7" y="-7" width="1550" height="838" extended-state="6" />
     <editor active="true" />
     <layout>
-      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.22050938" />
+      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.19504021" />
       <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" />
@@ -748,14 +728,14 @@
       <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.39660057" />
+      <window_info anchor="bottom" id="Version Control" order="8" visible="true" weight="0.04249292" />
       <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.23796034" />
-      <window_info anchor="bottom" id="Messages" order="13" weight="0.04249292" />
+      <window_info anchor="bottom" id="Messages" order="13" weight="0.4362606" />
       <window_info anchor="bottom" id="Java Enterprise" order="14" />
-      <window_info anchor="bottom" id="Run Dashboard" order="15" sideWeight="0.49932975" visible="true" weight="0.09348442" />
+      <window_info anchor="bottom" id="Run Dashboard" order="15" sideWeight="0.49932975" weight="0.4348442" />
       <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" />
@@ -855,8 +835,7 @@
     <MESSAGE value="库存和任务移库相关" />
     <MESSAGE value="库存移库生成和完成逻辑" />
     <MESSAGE value="xml" />
-    <MESSAGE value="立库主单出库查看及明细库存出库查看" />
-    <option name="LAST_COMMIT_MESSAGE" value="立库主单出库查看及明细库存出库查看" />
+    <option name="LAST_COMMIT_MESSAGE" value="xml" />
   </component>
   <component name="XDebuggerManager">
     <breakpoint-manager>
@@ -915,10 +894,24 @@
           <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="file://$PROJECT_DIR$/.idea/WMSV1.iml">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/.idea/uiDesigner.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-828" />
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/.idea/MyBatisCodeHelperDatasource.xml" />
     <entry file="file://$PROJECT_DIR$/.idea/misc.xml">
       <provider selected="true" editor-type-id="text-editor" />
@@ -930,6 +923,13 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/inventoryHeader.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="332">
+          <caret line="283" column="13" selection-start-line="283" selection-start-column="13" selection-end-line="283" selection-end-column="13" />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/domain/Location.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="-456">
@@ -1035,6 +1035,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">
@@ -1077,6 +1084,13 @@
         </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">
@@ -1109,166 +1123,79 @@
         </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="448">
-          <caret line="117" column="41" lean-forward="true" selection-start-line="117" selection-start-column="41" selection-end-line="117" selection-end-column="41" />
-        </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="304">
-          <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/inventory/inventoryTransaction/controller/InventoryTransactionController.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="236">
-          <caret line="96" lean-forward="true" selection-start-line="96" selection-end-line="96" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyIn.html">
+    <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="256">
-          <caret line="29" column="49" selection-start-line="29" selection-start-column="49" selection-end-line="29" selection-end-column="49" />
+        <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/inventoryHeader/emptyCheckOut.html">
+    <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="424">
-          <caret line="41" column="51" selection-start-line="41" selection-start-column="38" selection-end-line="41" selection-end-column="51" />
+        <state relative-caret-position="448">
+          <caret line="117" column="41" lean-forward="true" selection-start-line="117" selection-start-column="41" selection-end-line="117" selection-end-column="41" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyOut.html">
+    <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="60">
-          <caret line="30" column="49" selection-start-line="30" selection-start-column="49" selection-end-line="30" selection-end-column="49" />
+        <state relative-caret-position="220">
+          <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/resources/templates/inventory/inventoryHeader/emptyContainer.html">
+    <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="-219">
-          <caret line="167" column="18" lean-forward="true" selection-start-line="167" selection-start-column="18" selection-end-line="167" selection-end-column="18" />
+        <state relative-caret-position="-18">
+          <caret line="220" column="35" selection-start-line="220" selection-start-column="35" selection-end-line="220" selection-end-column="35" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/service/ContainerService.java">
+    <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="200">
-          <caret line="15" column="19" selection-start-line="15" selection-start-column="19" selection-end-line="15" selection-end-column="19" />
+        <state relative-caret-position="1994">
+          <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/config/container/mapper/ContainerMapper.java">
+    <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="240">
-          <caret line="12" column="19" selection-start-line="12" selection-start-column="19" selection-end-line="12" selection-end-column="19" />
+        <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="imports" expanded="true" />
+            <element signature="e#4822#10729#0" />
           </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="338">
-          <caret line="113" column="14" lean-forward="true" selection-start-line="113" selection-start-column="14" selection-end-line="113" selection-end-column="14" />
-        </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="118">
-          <caret line="76" column="46" lean-forward="true" selection-start-line="76" selection-start-column="46" selection-end-line="76" selection-end-column="46" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/task/TaskHeaderMapper.xml">
+    <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="236">
-          <caret line="55" column="70" selection-start-line="55" selection-start-column="70" selection-end-line="55" selection-end-column="70" />
+        <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/task/taskHeader/mapper/TaskHeaderMapper.java">
+    <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="160">
-          <caret line="13" selection-start-line="13" selection-end-line="13" />
+        <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/task/taskHeader/service/TaskHeaderService.java">
+    <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="450">
-          <caret line="31" column="12" selection-start-line="31" selection-start-column="12" selection-end-line="31" selection-end-column="12" />
+        <state relative-caret-position="80">
+          <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/task/taskHeader/service/TaskHeaderServiceImpl.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="748">
-          <caret line="693" column="48" lean-forward="true" selection-start-line="693" selection-start-column="48" selection-end-line="693" selection-end-column="48" />
-        </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="708">
-          <caret line="48" column="13" lean-forward="true" selection-start-line="48" selection-start-column="13" selection-end-line="48" selection-end-column="13" />
-        </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="366">
-          <caret line="28" column="15" selection-start-line="28" selection-start-column="15" selection-end-line="28" selection-end-column="15" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/inventoryHeader.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="56">
-          <caret line="80" column="6" selection-start-line="80" selection-start-column="6" selection-end-line="80" selection-end-column="6" />
-        </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="-18">
-          <caret line="220" column="35" selection-start-line="220" selection-start-column="35" selection-end-line="220" selection-end-column="35" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/i18n/messages.properties">
-      <provider selected="true" editor-type-id="text-editor" />
-    </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="291">
-          <caret line="189" column="11" lean-forward="true" selection-start-line="189" selection-start-column="11" selection-end-line="189" selection-end-column="11" />
+        <state relative-caret-position="-14488">
+          <caret line="66" column="13" selection-start-line="66" selection-start-column="13" selection-end-line="66" selection-end-column="13" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
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 a6d887b..5188646 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
@@ -29,6 +29,8 @@ public interface TaskHeaderService extends IService<TaskHeader>{
 
     AjaxResult completeCycleCountOrSeeOutTask(TaskHeader taskHeader);
 
+    AjaxResult createReceiptTask(List<Integer> ids);
+
     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 7ab484a..e99b3dc 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
@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.huaheng.common.exception.service.ServiceException;
-import com.huaheng.common.support.Convert;
 import com.huaheng.common.utils.DataUtils;
 import com.huaheng.common.utils.StringUtils;
 import com.huaheng.common.utils.security.ShiroUtils;
@@ -20,6 +19,10 @@ import com.huaheng.pc.inventory.inventoryTransaction.domain.InventoryTransaction
 import com.huaheng.pc.inventory.inventoryTransaction.service.InventoryTransactionService;
 import com.huaheng.pc.receipt.receiptContainerDetail.domain.ReceiptContainerDetail;
 import com.huaheng.pc.receipt.receiptContainerDetail.service.ReceiptContainerDetailService;
+import com.huaheng.pc.receipt.receiptContainerHeader.domain.ReceiptContainerHeader;
+import com.huaheng.pc.receipt.receiptContainerHeader.service.ReceiptContainerHeaderService;
+import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail;
+import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService;
 import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
 import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService;
 import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerDetail;
@@ -30,15 +33,9 @@ import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader;
 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 com.sun.jmx.snmp.tasks.Task;
-import org.apache.poi.ss.formula.functions.T;
-
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import java.math.BigDecimal;
 import java.util.*;
-import java.util.stream.Collectors;
-
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
 import com.huaheng.pc.task.taskHeader.mapper.TaskHeaderMapper;
@@ -64,21 +61,22 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
     @Resource
     private InventoryDetailService inventoryDetailService;
     @Resource
-    private InventoryTransactionService  inventoryTransactionService;
+    private InventoryTransactionService inventoryTransactionService;
     @Resource
     private ReceiptHeaderService receiptHeaderService;
     @Resource
+    private ReceiptDetailService receiptDetailService;
+    @Resource
     private ReceiptContainerDetailService receiptContainerDetailService;
     @Resource
+    private ReceiptContainerHeaderService receiptContainerHeaderService;
+    @Resource
     private TaskHeaderMapper taskHeaderMapper;
 
 
-
-
-
     /**
      * 查询容器有无任务
-     * */
+     */
     @Override
     public Integer UncompleteCount(String ContainerCode) {
         return taskHeaderMapper.UncompleteCount(ContainerCode, ShiroUtils.getWarehouseCode());
@@ -86,6 +84,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
 
     /**
      * 生成出库任务
+     *
      * @param shipmentTaskCreateModel
      * @return
      */
@@ -195,8 +194,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
     }
 
     /**
-     *下发WCS执行任务
-     * */
+     * 下发WCS执行任务
+     */
     @Override
     public AjaxResult<TaskHeader> sendTaskToWcs(Integer[] taskIds) {
         TaskHeader task = null;
@@ -314,25 +313,23 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
 
     /**
      *
-     *
-     * */
+     */
     @Override
     public AjaxResult completeReceiptTask(TaskHeader task) throws Exception {
-        List<Map<String, Object>> taskReceiptContainerDetail =taskHeaderMapper.getReceiptTask(task.getId());
-        if (taskReceiptContainerDetail.size()<1){
+        List<Map<String, Object>> taskReceiptContainerDetail = taskHeaderMapper.getReceiptTask(task.getId());
+        if (taskReceiptContainerDetail.size() < 1) {
             return AjaxResult.success("未找到对应任务的入库单号!!!");
         }
         for (Map<String, Object> map : taskReceiptContainerDetail) {
             //将未完成的任务数量更新到库存表
             if (DataUtils.getInteger(map.get("status")) < 100) {
-                LambdaQueryWrapper<InventoryDetail> inventory =Wrappers.lambdaQuery();
-                inventory.eq(InventoryDetail::getWarehouseCode,ShiroUtils.getWarehouseCode())
-                         .eq(InventoryDetail::getLocationCode,task.getFromLocation())
-                         .eq(InventoryDetail::getReceiptDetailId,DataUtils.getString(map.get("receiptDetailId")))
-                         .eq(InventoryDetail::getContainerCode,DataUtils.getString(map.get("containerCode")));
-                         InventoryDetail detail=inventoryDetailService.getOne(inventory);
-                if (detail == null)
-                {
+                LambdaQueryWrapper<InventoryDetail> inventory = Wrappers.lambdaQuery();
+                inventory.eq(InventoryDetail::getWarehouseCode, ShiroUtils.getWarehouseCode())
+                        .eq(InventoryDetail::getLocationCode, task.getFromLocation())
+                        .eq(InventoryDetail::getReceiptDetailId, DataUtils.getString(map.get("receiptDetailId")))
+                        .eq(InventoryDetail::getContainerCode, DataUtils.getString(map.get("containerCode")));
+                InventoryDetail detail = inventoryDetailService.getOne(inventory);
+                if (detail == null) {
                     //添加库存单
                     InventoryHeader header = new InventoryHeader();
                     header.setWarehouseCode(DataUtils.getString(map.get("warehouseCode")));//仓库
@@ -367,13 +364,11 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                     detail.setCreatedBy(ShiroUtils.getLoginName());//创建人
                     detail.setLastUpdatedBy(ShiroUtils.getLoginName());//创建时间
                     inventoryDetailService.save(detail);
-                }
-                else
-                {
+                } 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")));
+                    lambdaUpdateWrapper.eq(InventoryDetail::getId, DataUtils.getInteger(map.get("receiptDetailId")));
                     inventoryDetailService.update(detail, lambdaUpdateWrapper);
                 }
                 //记录库存交易记录
@@ -405,40 +400,40 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 lambdaUpdateWrapper.eq(TaskDetail::getTaskId, DataUtils.getInteger(map.get("taskDetailId")));
                 taskDetailService.update(taskDetail, lambdaUpdateWrapper);
                 //修改入库单的状态
-                ReceiptHeader receiptHeader =new ReceiptHeader();
+                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);
                 task.setLastUpdatedBy(ShiroUtils.getLoginName());
                 task.setLastUpdated(new Date());
                 LambdaUpdateWrapper<TaskHeader> taskHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate();
                 taskHeaderLambdaUpdateWrapper.eq(TaskHeader::getId, task.getId());
                 taskHeaderService.update(task, taskHeaderLambdaUpdateWrapper);
-        //修改库位状态和对应的容器
-                Location location =new Location();
+                //修改库位状态和对应的容器
+                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);
-        //修改容器状态和对应的库位
-                Container container =new Container();
+                //修改容器状态和对应的库位
+                Container container = new Container();
                 container.setLocationCode(task.getToLocation());
                 container.setStatus("some");
-        //修改组盘表状态为20
-         ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail();
-         receiptContainerDetail.setStatus(20);
-         LambdaUpdateWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate();
-         receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getReceiptId,DataUtils.getInteger(map.get("receiptId")));
-         receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper);
-           }
-        }
-                return AjaxResult.success("完成入库任务");
+                //修改组盘表状态为20
+                ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail();
+                receiptContainerDetail.setStatus(20);
+                LambdaUpdateWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate();
+                receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getReceiptId, DataUtils.getInteger(map.get("receiptId")));
+                receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper);
+            }
+        }
+        return AjaxResult.success("完成入库任务");
     }
 
 //    @Override
@@ -449,7 +444,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
     /**
      * 生成
      * 立库移库
-     * */
+     */
     @Transactional
     public AjaxResult createTransferTask(String sourceLocation, String destinationLocation) {
 
@@ -459,24 +454,24 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         temp1.setWarehouseCode(ShiroUtils.getWarehouseCode());
         LambdaQueryWrapper<Location> lambda1 = Wrappers.lambdaQuery();
         Location loc1 = locationService.getOne(lambda1);
-        if(loc1==null){
-            return AjaxResult.error("源库位:"+sourceLocation+"未找到");
+        if (loc1 == null) {
+            return AjaxResult.error("源库位:" + sourceLocation + "未找到");
         }
-        if(!loc1.getStatus().equals("empty")){
-            return AjaxResult.error("源库位:"+sourceLocation+"状态非空闲");
+        if (!loc1.getStatus().equals("empty")) {
+            return AjaxResult.error("源库位:" + sourceLocation + "状态非空闲");
         }
-        if(StringUtils.isEmpty(loc1.getContainerCode())){
-            return AjaxResult.error("源库位:"+sourceLocation+"不存在托盘");
+        if (StringUtils.isEmpty(loc1.getContainerCode())) {
+            return AjaxResult.error("源库位:" + sourceLocation + "不存在托盘");
         }
         //这里增加组盘校验,如果此托盘存在未完成的组盘数据,则不能移库
         //校验入库组盘
-        int count1 = inventoryHeaderService.getUncompleteReceiptContainer(sourceLocation,ShiroUtils.getWarehouseCode());
-        if(count1>0){
-            return AjaxResult.error("源库位:"+sourceLocation+"存在入库组盘,不能移库");
+        int count1 = inventoryHeaderService.getUncompleteReceiptContainer(sourceLocation, ShiroUtils.getWarehouseCode());
+        if (count1 > 0) {
+            return AjaxResult.error("源库位:" + sourceLocation + "存在入库组盘,不能移库");
         }
-        int count2 = inventoryHeaderService.getUncompleteShipmentContainer(sourceLocation,ShiroUtils.getWarehouseCode());
-        if(count2>0){
-            return AjaxResult.error("源库位:"+sourceLocation+"存在出库组盘,不能移库");
+        int count2 = inventoryHeaderService.getUncompleteShipmentContainer(sourceLocation, ShiroUtils.getWarehouseCode());
+        if (count2 > 0) {
+            return AjaxResult.error("源库位:" + sourceLocation + "存在出库组盘,不能移库");
         }
         //目的库位校验
         Location temp2 = new Location();
@@ -484,18 +479,18 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         temp2.setCode(destinationLocation);
         LambdaQueryWrapper<Location> lambdaQueryWrapper2 = Wrappers.lambdaQuery(temp2);
         Location loc2 = locationService.getOne(lambdaQueryWrapper2);
-        if(loc2 == null){
-            return  AjaxResult.error("目标库位:"+destinationLocation+"未找到");
+        if (loc2 == null) {
+            return AjaxResult.error("目标库位:" + destinationLocation + "未找到");
         }
-        if(!loc2.getStatus().equals("empty")){
-            return AjaxResult.error("目标库位:"+destinationLocation+"状态非空闲");
+        if (!loc2.getStatus().equals("empty")) {
+            return AjaxResult.error("目标库位:" + destinationLocation + "状态非空闲");
         }
-        if(StringUtils.isNotEmpty(loc2.getContainerCode())){
-            return AjaxResult.error("目标库位:"+destinationLocation+"已存在托盘");
+        if (StringUtils.isNotEmpty(loc2.getContainerCode())) {
+            return AjaxResult.error("目标库位:" + destinationLocation + "已存在托盘");
         }
-        int count3 = inventoryHeaderService.getUncompleteReceiptContainer(destinationLocation,ShiroUtils.getWarehouseCode());
-        if(count3>0){
-            return AjaxResult.error("目标库位:"+sourceLocation+"存在入库组盘,不能移库");
+        int count3 = inventoryHeaderService.getUncompleteReceiptContainer(destinationLocation, ShiroUtils.getWarehouseCode());
+        if (count3 > 0) {
+            return AjaxResult.error("目标库位:" + sourceLocation + "存在入库组盘,不能移库");
         }
         //写入任务主表和明细表
         TaskHeader taskHeader = new TaskHeader();
@@ -540,6 +535,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
 
     /**
      * 完成移库任务
+     *
      * @param task
      */
     private void completeTransferTask(TaskHeader task) {
@@ -572,15 +568,15 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         inventoryDetail.setCompanyCode(inventoryHeader.getCompanyCode());
         inventoryDetail.setInventoryHeaderId(inventoryHeader.getId());
         LambdaQueryWrapper<InventoryDetail> inventoryDetailLambdaQueryWrapper = Wrappers.lambdaQuery(inventoryDetail);
-        List<InventoryDetail>  inventoryDetailList = inventoryDetailService.list(inventoryDetailLambdaQueryWrapper);
+        List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(inventoryDetailLambdaQueryWrapper);
         /*同时写入库存交易表*/
         List<InventoryTransaction> inventoryTransactionList = new ArrayList<>();
-        for(InventoryDetail item:inventoryDetailList){
+        for (InventoryDetail item : inventoryDetailList) {
             item.setLocationCode(inventoryHeader.getLocationCode());//修改明细表库位
             item.setLastUpdated(new Date());
             item.setLastUpdatedBy(ShiroUtils.getLoginName());
             inventoryDetails.add(item);
-                    /*----------*/
+            /*----------*/
             InventoryTransaction inventoryTransaction = new InventoryTransaction();
             inventoryTransaction.setWarehouseCode(task.getWarehouseCode());
             inventoryTransaction.setLocationCode(taskDetail.getToLocation());
@@ -615,10 +611,10 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             inventoryTransaction.setSupplierCode(item.getSupplierCode());
             inventoryDetailList.add(inventoryDetail);
         }
-        if(inventoryDetailService.saveOrUpdateBatch(inventoryDetails)){
+        if (inventoryDetailService.saveOrUpdateBatch(inventoryDetails)) {
             //更新库存明细成功后,写入库存交易
             inventoryTransactionService.saveBatch(inventoryTransactionList);
-        }else{
+        } else {
             throw new ServiceException("库存明细更新错误!");
         }
 
@@ -654,30 +650,30 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
     }
 
     /**
-     *生成
-     *出库查看
+     * 生成
+     * 出库查看
      * 任务
-     * */
+     */
     @Override
     @Transactional
     public AjaxResult createCheckOutTask(String[] ids) {
 
-        for(String id:ids){
-         InventoryHeader inventoryHeader = inventoryHeaderService.getById(Integer.parseInt(id));
+        for (String id : ids) {
+            InventoryHeader inventoryHeader = inventoryHeaderService.getById(Integer.parseInt(id));
             //检查库位容器
             Location temp = new Location();
             temp.setCode(inventoryHeader.getLocationCode());
             temp.setWarehouseCode(inventoryHeader.getWarehouseCode());
             LambdaQueryWrapper<Location> lambdaQueryWrapper = Wrappers.lambdaQuery(temp);
             Location loc = locationService.getOne(lambdaQueryWrapper);
-            if(loc == null){
+            if (loc == null) {
                 throw new ServiceException("库存没有库位!");
             }
-            if(!loc.getStatus().equals("empty")){
-                throw new ServiceException(inventoryHeader.getLocationCode()+"状态非空闲,操作失败");
+            if (!loc.getStatus().equals("empty")) {
+                throw new ServiceException(inventoryHeader.getLocationCode() + "状态非空闲,操作失败");
             }
-            if(StringUtils.isEmpty(loc.getContainerCode())){
-                throw new ServiceException(inventoryHeader.getLocationCode()+"没有容器,操作失败");
+            if (StringUtils.isEmpty(loc.getContainerCode())) {
+                throw new ServiceException(inventoryHeader.getLocationCode() + "没有容器,操作失败");
             }
             //通过库存头,找到库存明细
             InventoryDetail inventoryDetail = new InventoryDetail();
@@ -685,7 +681,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             inventoryDetail.setCompanyCode(inventoryHeader.getCompanyCode());
             inventoryDetail.setInventoryHeaderId(inventoryHeader.getId());
             LambdaQueryWrapper<InventoryDetail> inventoryDetailLambdaQueryWrapper = Wrappers.lambdaQuery(inventoryDetail);
-            List<InventoryDetail>  inventoryDetailList = inventoryDetailService.list(inventoryDetailLambdaQueryWrapper);
+            List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(inventoryDetailLambdaQueryWrapper);
 
             //写入任务主表
             TaskHeader taskHeader = new TaskHeader();
@@ -704,7 +700,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             taskHeaderMapper.insert(taskHeader);
             //分拆库存明细,并写入任务细表
             List<TaskDetail> taskDetails = new ArrayList<>();
-            for(InventoryDetail item:inventoryDetailList){
+            for (InventoryDetail item : inventoryDetailList) {
 
                 TaskDetail taskDetail = new TaskDetail();
                 taskDetail.setTaskId(taskHeader.getId());//主单ID
@@ -720,13 +716,13 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 taskDetail.setLastUpdated(new Date());
                 taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
                 taskDetails.add(taskDetail);
-                }
-                if(taskDetailService.saveBatch(taskDetails)){
-                    //锁定库位状态
-                    locationService.updateStatus(loc.getContainerCode(),"lock");
-                }else{
-                    throw new ServiceException("出库查看任务明细生成失败!");
-                }
+            }
+            if (taskDetailService.saveBatch(taskDetails)) {
+                //锁定库位状态
+                locationService.updateStatus(loc.getContainerCode(), "lock");
+            } else {
+                throw new ServiceException("出库查看任务明细生成失败!");
+            }
 
         }
         return AjaxResult.success("出库查看任务生成成功!");
@@ -736,7 +732,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
      * 完成
      * 盘点,出库查看
      * 更新状态即可
-     * */
+     */
     @Transactional
     @Override
     public AjaxResult completeCycleCountOrSeeOutTask(TaskHeader taskHeader) {
@@ -750,17 +746,17 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         taskDetail.setTaskId(taskHeader.getId());
         LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(taskDetail);
         List<TaskDetail> taskDetailList = taskDetailService.list(lambdaQueryWrapper);//查询子单
-        for(TaskDetail item:taskDetailList){
+        for (TaskDetail item : taskDetailList) {
             item.setStatus(100);
             item.setLastUpdatedBy(ShiroUtils.getLoginName()); //更新用户
             item.setLastUpdated(new Date());   //更新时间
             taskDetailList.add(item);
         }
-        if( taskDetailService.saveOrUpdateBatch(taskDetailList) == false || taskHeaderService.saveOrUpdate(taskHeader) == false){
+        if (taskDetailService.saveOrUpdateBatch(taskDetailList) == false || taskHeaderService.saveOrUpdate(taskHeader) == false) {
             throw new ServiceException("任务单据状态更新失败!");
         }
         //盘点完成时,修改盘点详细中的状态为100,容器恢复为空
-        if(taskHeader.getTaskType() == 700){
+        if (taskHeader.getTaskType() == 700) {
             /*CyclecountDetail cyclecountDetai = cyclecountDetailService.selectEntityById(
                     task.getAllocationHeadId());
             cyclecountDetai.setStatus(40);
@@ -769,7 +765,78 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         }
         //释放库位状态
         locationService.updateStatus(taskHeader.getFromLocation(), "empty");
-        return  AjaxResult.success("完成出库查看任务");
+        return AjaxResult.success("完成出库查看任务");
+    }
+
+    /**
+     * 创建上架任务
+     *
+     * @param ids
+     * @return
+     */
+    @Override
+    public AjaxResult createReceiptTask(List<Integer> ids) {
+        for (Integer id : ids) {
+            ReceiptContainerHeader receiptContainerHeader = receiptContainerHeaderService.getById(id);
+            if (receiptContainerHeader == null)
+                throw new ServiceException("任务不存在!");
+            if (receiptContainerHeader.getWarehouseCode() != ShiroUtils.getWarehouseCode())
+                throw new ServiceException("任务不在当前仓库!");
+            LambdaQueryWrapper<ReceiptContainerDetail> containerDetailLambda = Wrappers.lambdaQuery();
+            containerDetailLambda.eq(ReceiptContainerDetail::getReceiptId, id);
+            List<ReceiptContainerDetail> list = receiptContainerDetailService.list(containerDetailLambda);
+            if (list.size() < 1)
+                throw new ServiceException("没有组盘明细,请先组盘!");
+            if (receiptContainerHeader.getStatus() == 0) {
+                if (receiptContainerHeader.getStatus().intValue() < 10) {
+                    receiptContainerHeader.setStatus((short) 10);
+                    receiptContainerHeaderService.updateById(receiptContainerHeader);
+                }
+                //添加任务主表
+                TaskHeader task = new TaskHeader();
+                task.setWarehouseCode(receiptContainerHeader.getWarehouseCode());
+                task.setCompanyCode(receiptContainerHeader.getCompanyCode());
+                task.setFromLocation(receiptContainerHeader.getFromLocation());
+                task.setTaskType(Integer.valueOf(receiptContainerHeader.getTaskType()));
+                task.setFromLocation(receiptContainerHeader.getFromLocation());
+                task.setToLocation(receiptContainerHeader.getToLocation());
+                task.setContainerCode(receiptContainerHeader.getContainerCode());
+                task.setCreated(new Date());
+                task.setCreatedBy(ShiroUtils.getLoginName());
+                this.save(task);
+                //添加任务明细表
+                for(ReceiptContainerDetail item : list) {
+                    TaskDetail taskDetail = new TaskDetail();
+                    taskDetail.setTaskId(task.getId());
+                    taskDetail.setWarehouseCode(task.getWarehouseCode());
+                    taskDetail.setCompanyCode(task.getCompanyCode());
+                    taskDetail.setCompanyCode(task.getCompanyCode());
+                    taskDetail.setMaterialCode(item.getMaterialCode());
+                    taskDetail.setMaterialName(item.getMaterialName());
+                    taskDetail.setBillCode(item.getReceiptCode());
+                    taskDetail.setBillDetailId(item.getReceiptDetailId());
+                    taskDetail.setBillCode(item.getReceiptCode());
+                    taskDetail.setQty(BigDecimal.valueOf(item.getQty()));
+                    taskDetail.setContainerCode(task.getContainerCode());
+                    taskDetail.setFromLocation(task.getFromLocation());
+                    taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
+                    taskDetail.setBatch(item.getBatch());
+                    taskDetailService.save(taskDetail);
+
+                    ReceiptDetail receiptDetail = receiptDetailService.getById(item.getReceiptDetailId());
+                    if ("300".equals(receiptDetail.getProcessStamp())){
+                        ReceiptDetail detail = receiptDetailService.queryflow(receiptDetail);
+                        if (!receiptDetailService.updateById(detail)){
+                            throw new ServiceException("更新入库单详情失败");
+                        }
+                        receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId());
+                    }
+                }
+
+
+            }
+        }
+        return  AjaxResult.success("生成上架任务成功!");
     }