Commit 1bd37351792735b8072427cb202629d7365d3134

Authored by xqs
1 parent b1c71d1e

空托出入库及出库查看

.idea/compiler.xml
... ... @@ -6,8 +6,8 @@
6 6 <sourceOutputDir name="target/generated-sources/annotations" />
7 7 <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
8 8 <outputRelativeToContentRoot value="true" />
9   - <module name="huaheng" />
10 9 <module name="wms2" />
  10 + <module name="huaheng" />
11 11 </profile>
12 12 </annotationProcessing>
13 13 </component>
... ...
.idea/workspace.xml
... ... @@ -2,18 +2,24 @@
2 2 <project version="4">
3 3 <component name="ChangeListManager">
4 4 <list default="true" id="908d8a6f-e3e4-4fdc-b674-e523a3e2b520" name="Default Changelist" comment="">
  5 + <change afterPath="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyCheckOut.html" afterDir="false" />
  6 + <change afterPath="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyContainer.html" afterDir="false" />
  7 + <change afterPath="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyIn.html" afterDir="false" />
  8 + <change afterPath="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyOut.html" afterDir="false" />
5 9 <change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
6   - <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
7 10 <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
8   - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java" afterDir="false" />
9   - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailService.java" afterDir="false" />
10   - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java" afterDir="false" />
  11 + <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" />
  12 + <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" />
  13 + <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" />
11 14 <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" />
12 15 <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" />
13 16 <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" />
  17 + <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" />
14 18 <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" />
15 19 <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" />
16   - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html" afterDir="false" />
  20 + <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" />
  21 + <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" />
  22 + <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" />
17 23 </list>
18 24 <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
19 25 <option name="SHOW_DIALOG" value="false" />
... ... @@ -56,38 +62,17 @@
56 62 <file pinned="false" current-in-tab="false">
57 63 <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.java">
58 64 <provider selected="true" editor-type-id="text-editor">
59   - <state relative-caret-position="869">
60   - <caret line="58" lean-forward="true" selection-start-line="58" selection-end-line="58" />
  65 + <state relative-caret-position="-18">
  66 + <caret line="220" column="35" selection-start-line="220" selection-start-column="35" selection-end-line="220" selection-end-column="35" />
61 67 </state>
62 68 </provider>
63 69 </entry>
64 70 </file>
65 71 <file pinned="false" current-in-tab="true">
66   - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java">
  72 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java">
67 73 <provider selected="true" editor-type-id="text-editor">
68   - <state relative-caret-position="80">
69   - <caret line="44" column="22" selection-start-line="44" selection-start-column="22" selection-end-line="44" selection-end-column="22" />
70   - </state>
71   - </provider>
72   - </entry>
73   - </file>
74   - <file pinned="false" current-in-tab="false">
75   - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java">
76   - <provider selected="true" editor-type-id="text-editor">
77   - <state relative-caret-position="173">
78   - <caret line="104" column="25" selection-start-line="104" selection-start-column="25" selection-end-line="104" selection-end-column="25" />
79   - </state>
80   - </provider>
81   - </entry>
82   - </file>
83   - <file pinned="false" current-in-tab="false">
84   - <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html">
85   - <provider selected="true" editor-type-id="text-editor">
86   - <state relative-caret-position="185">
87   - <caret line="335" column="16" lean-forward="true" selection-start-line="335" selection-start-column="16" selection-end-line="335" selection-end-column="16" />
88   - <folding>
89   - <element signature="e#4822#10729#0" />
90   - </folding>
  74 + <state relative-caret-position="291">
  75 + <caret line="189" column="11" lean-forward="true" selection-start-line="189" selection-start-column="11" selection-end-line="189" selection-end-column="11" />
91 76 </state>
92 77 </provider>
93 78 </entry>
... ... @@ -122,20 +107,31 @@
122 107 <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskDetail/domain/TaskDetail.java" />
123 108 <option value="$PROJECT_DIR$/src/main/resources/mybatis/task/TaskDetailMapper.xml" />
124 109 <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/domain/TaskHeader.java" />
125   - <option value="$PROJECT_DIR$/src/main/resources/mybatis/task/TaskHeaderMapper.xml" />
126 110 <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/domain/InventoryTransaction.java" />
127 111 <option value="$PROJECT_DIR$/src/main/resources/mybatis/inventory/InventoryTransactionMapper.xml" />
128 112 <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java" />
129 113 <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/containerType/service/ContainerTypeServiceImpl.java" />
130   - <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderService.java" />
131   - <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java" />
132 114 <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailService.java" />
133   - <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java" />
134   - <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.java" />
135   - <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java" />
136   - <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java" />
137 115 <option value="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html" />
138 116 <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java" />
  117 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java" />
  118 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/controller/InventoryTransactionController.java" />
  119 + <option value="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyInOut.html" />
  120 + <option value="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyIn.html" />
  121 + <option value="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyOut.html" />
  122 + <option value="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/inventoryHeader.html" />
  123 + <option value="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyContainer.html" />
  124 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/service/ContainerService.java" />
  125 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/mapper/ContainerMapper.java" />
  126 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java" />
  127 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/mapper/TaskHeaderMapper.java" />
  128 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java" />
  129 + <option value="$PROJECT_DIR$/src/main/resources/mybatis/task/TaskHeaderMapper.xml" />
  130 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java" />
  131 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderService.java" />
  132 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.java" />
  133 + <option value="$PROJECT_DIR$/src/main/resources/mybatis/config/ContainerMapper.xml" />
  134 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java" />
139 135 </list>
140 136 </option>
141 137 </component>
... ... @@ -332,6 +328,19 @@
332 328 <item name="pc" type="462c0819:PsiDirectoryNode" />
333 329 <item name="inventory" type="462c0819:PsiDirectoryNode" />
334 330 <item name="inventoryHeader" type="462c0819:PsiDirectoryNode" />
  331 + <item name="mapper" type="462c0819:PsiDirectoryNode" />
  332 + </path>
  333 + <path>
  334 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  335 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  336 + <item name="src" type="462c0819:PsiDirectoryNode" />
  337 + <item name="main" type="462c0819:PsiDirectoryNode" />
  338 + <item name="java" type="462c0819:PsiDirectoryNode" />
  339 + <item name="com" type="462c0819:PsiDirectoryNode" />
  340 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  341 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  342 + <item name="inventory" type="462c0819:PsiDirectoryNode" />
  343 + <item name="inventoryHeader" type="462c0819:PsiDirectoryNode" />
335 344 <item name="service" type="462c0819:PsiDirectoryNode" />
336 345 </path>
337 346 <path>
... ... @@ -357,6 +366,19 @@
357 366 <item name="pc" type="462c0819:PsiDirectoryNode" />
358 367 <item name="inventory" type="462c0819:PsiDirectoryNode" />
359 368 <item name="inventoryTransaction" type="462c0819:PsiDirectoryNode" />
  369 + <item name="controller" type="462c0819:PsiDirectoryNode" />
  370 + </path>
  371 + <path>
  372 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  373 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  374 + <item name="src" type="462c0819:PsiDirectoryNode" />
  375 + <item name="main" type="462c0819:PsiDirectoryNode" />
  376 + <item name="java" type="462c0819:PsiDirectoryNode" />
  377 + <item name="com" type="462c0819:PsiDirectoryNode" />
  378 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  379 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  380 + <item name="inventory" type="462c0819:PsiDirectoryNode" />
  381 + <item name="inventoryTransaction" type="462c0819:PsiDirectoryNode" />
360 382 <item name="domain" type="462c0819:PsiDirectoryNode" />
361 383 </path>
362 384 <path>
... ... @@ -439,7 +461,35 @@
439 461 <item name="wms2" type="462c0819:PsiDirectoryNode" />
440 462 <item name="src" type="462c0819:PsiDirectoryNode" />
441 463 <item name="main" type="462c0819:PsiDirectoryNode" />
  464 + <item name="java" type="462c0819:PsiDirectoryNode" />
  465 + <item name="com" type="462c0819:PsiDirectoryNode" />
  466 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  467 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  468 + <item name="task" type="462c0819:PsiDirectoryNode" />
  469 + <item name="taskPreference" type="462c0819:PsiDirectoryNode" />
  470 + </path>
  471 + <path>
  472 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  473 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  474 + <item name="src" type="462c0819:PsiDirectoryNode" />
  475 + <item name="main" type="462c0819:PsiDirectoryNode" />
  476 + <item name="resources" type="462c0819:PsiDirectoryNode" />
  477 + </path>
  478 + <path>
  479 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  480 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  481 + <item name="src" type="462c0819:PsiDirectoryNode" />
  482 + <item name="main" type="462c0819:PsiDirectoryNode" />
  483 + <item name="resources" type="462c0819:PsiDirectoryNode" />
  484 + <item name="i18n" type="462c0819:PsiDirectoryNode" />
  485 + </path>
  486 + <path>
  487 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  488 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  489 + <item name="src" type="462c0819:PsiDirectoryNode" />
  490 + <item name="main" type="462c0819:PsiDirectoryNode" />
442 491 <item name="resources" type="462c0819:PsiDirectoryNode" />
  492 + <item name="templates" type="462c0819:PsiDirectoryNode" />
443 493 </path>
444 494 <path>
445 495 <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
... ... @@ -448,6 +498,7 @@
448 498 <item name="main" type="462c0819:PsiDirectoryNode" />
449 499 <item name="resources" type="462c0819:PsiDirectoryNode" />
450 500 <item name="templates" type="462c0819:PsiDirectoryNode" />
  501 + <item name="config" type="462c0819:PsiDirectoryNode" />
451 502 </path>
452 503 <path>
453 504 <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
... ... @@ -538,6 +589,7 @@
538 589 <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
539 590 <property name="WebServerToolWindowFactoryState" value="false" />
540 591 <property name="aspect.path.notification.shown" value="true" />
  592 + <property name="last_opened_file_path" value="$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader" />
541 593 <property name="list.type.of.created.stylesheet" value="CSS" />
542 594 <property name="node.js.detected.package.eslint" value="true" />
543 595 <property name="node.js.path.for.package.eslint" value="project" />
... ... @@ -547,6 +599,11 @@
547 599 <property name="nodejs_package_manager_path" value="npm" />
548 600 <property name="settings.editor.selected.configurable" value="Settings.JavaScript" />
549 601 </component>
  602 + <component name="RecentsManager">
  603 + <key name="CopyFile.RECENT_KEYS">
  604 + <recent name="C:\Project\wms2\src\main\resources\templates\inventory\inventoryHeader" />
  605 + </key>
  606 + </component>
550 607 <component name="RunDashboard">
551 608 <option name="configurationTypes">
552 609 <set>
... ... @@ -677,7 +734,7 @@
677 734 <frame x="-7" y="-7" width="1550" height="838" extended-state="6" />
678 735 <editor active="true" />
679 736 <layout>
680   - <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.308311" />
  737 + <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.22050938" />
681 738 <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
682 739 <window_info id="Web" order="2" side_tool="true" />
683 740 <window_info id="Designer" order="3" />
... ... @@ -691,14 +748,14 @@
691 748 <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
692 749 <window_info anchor="bottom" id="TODO" order="6" />
693 750 <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
694   - <window_info anchor="bottom" id="Version Control" order="8" weight="0.04249292" />
  751 + <window_info anchor="bottom" id="Version Control" order="8" weight="0.39660057" />
695 752 <window_info anchor="bottom" id="Database Changes" order="9" weight="0.3286119" />
696 753 <window_info anchor="bottom" id="Spring" order="10" />
697 754 <window_info anchor="bottom" id="MyBatis Log" order="11" weight="0.3286119" />
698 755 <window_info anchor="bottom" id="Event Log" order="12" sideWeight="0.50067025" side_tool="true" weight="0.23796034" />
699   - <window_info anchor="bottom" id="Messages" order="13" weight="0.4362606" />
  756 + <window_info anchor="bottom" id="Messages" order="13" weight="0.04249292" />
700 757 <window_info anchor="bottom" id="Java Enterprise" order="14" />
701   - <window_info active="true" anchor="bottom" id="Run Dashboard" order="15" sideWeight="0.49932975" visible="true" weight="0.4348442" />
  758 + <window_info anchor="bottom" id="Run Dashboard" order="15" sideWeight="0.49932975" visible="true" weight="0.09348442" />
702 759 <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
703 760 <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
704 761 <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
... ... @@ -798,7 +855,8 @@
798 855 <MESSAGE value="库存和任务移库相关" />
799 856 <MESSAGE value="库存移库生成和完成逻辑" />
800 857 <MESSAGE value="xml" />
801   - <option name="LAST_COMMIT_MESSAGE" value="xml" />
  858 + <MESSAGE value="立库主单出库查看及明细库存出库查看" />
  859 + <option name="LAST_COMMIT_MESSAGE" value="立库主单出库查看及明细库存出库查看" />
802 860 </component>
803 861 <component name="XDebuggerManager">
804 862 <breakpoint-manager>
... ... @@ -857,24 +915,10 @@
857 915 <properties />
858 916 <option name="timeStamp" value="26" />
859 917 </line-breakpoint>
860   - <line-breakpoint enabled="true" type="java-line">
861   - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java</url>
862   - <line>47</line>
863   - <properties />
864   - <option name="timeStamp" value="37" />
865   - </line-breakpoint>
866 918 </breakpoints>
867 919 </breakpoint-manager>
868 920 </component>
869 921 <component name="editorHistoryManager">
870   - <entry file="file://$PROJECT_DIR$/.idea/WMSV1.iml">
871   - <provider selected="true" editor-type-id="text-editor" />
872   - </entry>
873   - <entry file="file://$PROJECT_DIR$/.idea/uiDesigner.xml">
874   - <provider selected="true" editor-type-id="text-editor">
875   - <state relative-caret-position="-828" />
876   - </provider>
877   - </entry>
878 922 <entry file="file://$PROJECT_DIR$/.idea/MyBatisCodeHelperDatasource.xml" />
879 923 <entry file="file://$PROJECT_DIR$/.idea/misc.xml">
880 924 <provider selected="true" editor-type-id="text-editor" />
... ... @@ -886,13 +930,6 @@
886 930 </state>
887 931 </provider>
888 932 </entry>
889   - <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/inventoryHeader.html">
890   - <provider selected="true" editor-type-id="text-editor">
891   - <state relative-caret-position="332">
892   - <caret line="283" column="13" selection-start-line="283" selection-start-column="13" selection-end-line="283" selection-end-column="13" />
893   - </state>
894   - </provider>
895   - </entry>
896 933 <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/domain/Location.java">
897 934 <provider selected="true" editor-type-id="text-editor">
898 935 <state relative-caret-position="-456">
... ... @@ -998,13 +1035,6 @@
998 1035 </state>
999 1036 </provider>
1000 1037 </entry>
1001   - <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/task/TaskHeaderMapper.xml">
1002   - <provider selected="true" editor-type-id="text-editor">
1003   - <state relative-caret-position="322">
1004   - <caret line="18" column="4" selection-start-line="18" selection-start-column="4" selection-end-line="18" selection-end-column="4" />
1005   - </state>
1006   - </provider>
1007   - </entry>
1008 1038 <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/inventory/InventoryTransactionMapper.xml">
1009 1039 <provider selected="true" editor-type-id="text-editor">
1010 1040 <state relative-caret-position="308">
... ... @@ -1047,13 +1077,6 @@
1047 1077 </state>
1048 1078 </provider>
1049 1079 </entry>
1050   - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/mapper/TaskHeaderMapper.java">
1051   - <provider selected="true" editor-type-id="text-editor">
1052   - <state relative-caret-position="120">
1053   - <caret line="11" column="78" selection-start-line="11" selection-start-column="78" selection-end-line="11" selection-end-column="78" />
1054   - </state>
1055   - </provider>
1056   - </entry>
1057 1080 <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/transfer.html">
1058 1081 <provider selected="true" editor-type-id="text-editor">
1059 1082 <state relative-caret-position="-264">
... ... @@ -1086,76 +1109,166 @@
1086 1109 </state>
1087 1110 </provider>
1088 1111 </entry>
1089   - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderService.java">
  1112 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java">
1090 1113 <provider selected="true" editor-type-id="text-editor">
1091   - <state relative-caret-position="100">
1092   - <caret line="8" column="61" selection-start-line="8" selection-start-column="61" selection-end-line="8" selection-end-column="61" />
  1114 + <state relative-caret-position="448">
  1115 + <caret line="117" column="41" lean-forward="true" selection-start-line="117" selection-start-column="41" selection-end-line="117" selection-end-column="41" />
1093 1116 </state>
1094 1117 </provider>
1095 1118 </entry>
1096   - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java">
  1119 + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html">
1097 1120 <provider selected="true" editor-type-id="text-editor">
1098   - <state relative-caret-position="448">
1099   - <caret line="117" column="41" lean-forward="true" selection-start-line="117" selection-start-column="41" selection-end-line="117" selection-end-column="41" />
  1121 + <state relative-caret-position="185">
  1122 + <caret line="335" column="16" lean-forward="true" selection-start-line="335" selection-start-column="16" selection-end-line="335" selection-end-column="16" />
  1123 + <folding>
  1124 + <element signature="e#4822#10729#0" />
  1125 + </folding>
1100 1126 </state>
1101 1127 </provider>
1102 1128 </entry>
1103   - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java">
  1129 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailService.java">
1104 1130 <provider selected="true" editor-type-id="text-editor">
1105   - <state relative-caret-position="220">
1106   - <caret line="18" column="15" selection-start-line="18" selection-start-column="15" selection-end-line="18" selection-end-column="15" />
  1131 + <state relative-caret-position="140">
  1132 + <caret line="9" selection-start-line="9" selection-end-line="9" />
1107 1133 </state>
1108 1134 </provider>
1109 1135 </entry>
1110   - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.java">
  1136 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java">
  1137 + <provider selected="true" editor-type-id="text-editor">
  1138 + <state relative-caret-position="304">
  1139 + <caret line="104" column="25" selection-start-line="104" selection-start-column="25" selection-end-line="104" selection-end-column="25" />
  1140 + </state>
  1141 + </provider>
  1142 + </entry>
  1143 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/controller/InventoryTransactionController.java">
1111 1144 <provider selected="true" editor-type-id="text-editor">
1112   - <state relative-caret-position="869">
1113   - <caret line="58" lean-forward="true" selection-start-line="58" selection-end-line="58" />
  1145 + <state relative-caret-position="236">
  1146 + <caret line="96" lean-forward="true" selection-start-line="96" selection-end-line="96" />
1114 1147 </state>
1115 1148 </provider>
1116 1149 </entry>
1117   - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java">
  1150 + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyIn.html">
1118 1151 <provider selected="true" editor-type-id="text-editor">
1119   - <state relative-caret-position="583">
1120   - <caret line="773" lean-forward="true" selection-start-line="773" selection-end-line="773" />
  1152 + <state relative-caret-position="256">
  1153 + <caret line="29" column="49" selection-start-line="29" selection-start-column="49" selection-end-line="29" selection-end-column="49" />
1121 1154 </state>
1122 1155 </provider>
1123 1156 </entry>
1124   - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java">
  1157 + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyCheckOut.html">
1125 1158 <provider selected="true" editor-type-id="text-editor">
1126   - <state relative-caret-position="408">
1127   - <caret line="105" column="37" lean-forward="true" selection-start-line="105" selection-start-column="37" selection-end-line="105" selection-end-column="37" />
  1159 + <state relative-caret-position="424">
  1160 + <caret line="41" column="51" selection-start-line="41" selection-start-column="38" selection-end-line="41" selection-end-column="51" />
1128 1161 </state>
1129 1162 </provider>
1130 1163 </entry>
1131   - <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html">
  1164 + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyOut.html">
1132 1165 <provider selected="true" editor-type-id="text-editor">
1133   - <state relative-caret-position="185">
1134   - <caret line="335" column="16" lean-forward="true" selection-start-line="335" selection-start-column="16" selection-end-line="335" selection-end-column="16" />
  1166 + <state relative-caret-position="60">
  1167 + <caret line="30" column="49" selection-start-line="30" selection-start-column="49" selection-end-line="30" selection-end-column="49" />
  1168 + </state>
  1169 + </provider>
  1170 + </entry>
  1171 + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/emptyContainer.html">
  1172 + <provider selected="true" editor-type-id="text-editor">
  1173 + <state relative-caret-position="-219">
  1174 + <caret line="167" column="18" lean-forward="true" selection-start-line="167" selection-start-column="18" selection-end-line="167" selection-end-column="18" />
  1175 + </state>
  1176 + </provider>
  1177 + </entry>
  1178 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/service/ContainerService.java">
  1179 + <provider selected="true" editor-type-id="text-editor">
  1180 + <state relative-caret-position="200">
  1181 + <caret line="15" column="19" selection-start-line="15" selection-start-column="19" selection-end-line="15" selection-end-column="19" />
  1182 + </state>
  1183 + </provider>
  1184 + </entry>
  1185 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/mapper/ContainerMapper.java">
  1186 + <provider selected="true" editor-type-id="text-editor">
  1187 + <state relative-caret-position="240">
  1188 + <caret line="12" column="19" selection-start-line="12" selection-start-column="19" selection-end-line="12" selection-end-column="19" />
1135 1189 <folding>
1136   - <element signature="e#4822#10729#0" />
  1190 + <element signature="imports" expanded="true" />
1137 1191 </folding>
1138 1192 </state>
1139 1193 </provider>
1140 1194 </entry>
1141   - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailService.java">
  1195 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java">
1142 1196 <provider selected="true" editor-type-id="text-editor">
1143   - <state relative-caret-position="140">
1144   - <caret line="9" selection-start-line="9" selection-end-line="9" />
  1197 + <state relative-caret-position="338">
  1198 + <caret line="113" column="14" lean-forward="true" selection-start-line="113" selection-start-column="14" selection-end-line="113" selection-end-column="14" />
1145 1199 </state>
1146 1200 </provider>
1147 1201 </entry>
1148   - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java">
  1202 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java">
1149 1203 <provider selected="true" editor-type-id="text-editor">
1150   - <state relative-caret-position="173">
1151   - <caret line="104" column="25" selection-start-line="104" selection-start-column="25" selection-end-line="104" selection-end-column="25" />
  1204 + <state relative-caret-position="118">
  1205 + <caret line="76" column="46" lean-forward="true" selection-start-line="76" selection-start-column="46" selection-end-line="76" selection-end-column="46" />
1152 1206 </state>
1153 1207 </provider>
1154 1208 </entry>
1155   - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java">
  1209 + <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/task/TaskHeaderMapper.xml">
1156 1210 <provider selected="true" editor-type-id="text-editor">
1157   - <state relative-caret-position="80">
1158   - <caret line="44" column="22" selection-start-line="44" selection-start-column="22" selection-end-line="44" selection-end-column="22" />
  1211 + <state relative-caret-position="236">
  1212 + <caret line="55" column="70" selection-start-line="55" selection-start-column="70" selection-end-line="55" selection-end-column="70" />
  1213 + </state>
  1214 + </provider>
  1215 + </entry>
  1216 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/mapper/TaskHeaderMapper.java">
  1217 + <provider selected="true" editor-type-id="text-editor">
  1218 + <state relative-caret-position="160">
  1219 + <caret line="13" selection-start-line="13" selection-end-line="13" />
  1220 + </state>
  1221 + </provider>
  1222 + </entry>
  1223 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java">
  1224 + <provider selected="true" editor-type-id="text-editor">
  1225 + <state relative-caret-position="450">
  1226 + <caret line="31" column="12" selection-start-line="31" selection-start-column="12" selection-end-line="31" selection-end-column="12" />
  1227 + </state>
  1228 + </provider>
  1229 + </entry>
  1230 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java">
  1231 + <provider selected="true" editor-type-id="text-editor">
  1232 + <state relative-caret-position="748">
  1233 + <caret line="693" column="48" lean-forward="true" selection-start-line="693" selection-start-column="48" selection-end-line="693" selection-end-column="48" />
  1234 + </state>
  1235 + </provider>
  1236 + </entry>
  1237 + <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/config/ContainerMapper.xml">
  1238 + <provider selected="true" editor-type-id="text-editor">
  1239 + <state relative-caret-position="708">
  1240 + <caret line="48" column="13" lean-forward="true" selection-start-line="48" selection-start-column="13" selection-end-line="48" selection-end-column="13" />
  1241 + </state>
  1242 + </provider>
  1243 + </entry>
  1244 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderService.java">
  1245 + <provider selected="true" editor-type-id="text-editor">
  1246 + <state relative-caret-position="366">
  1247 + <caret line="28" column="15" selection-start-line="28" selection-start-column="15" selection-end-line="28" selection-end-column="15" />
  1248 + </state>
  1249 + </provider>
  1250 + </entry>
  1251 + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryHeader/inventoryHeader.html">
  1252 + <provider selected="true" editor-type-id="text-editor">
  1253 + <state relative-caret-position="56">
  1254 + <caret line="80" column="6" selection-start-line="80" selection-start-column="6" selection-end-line="80" selection-end-column="6" />
  1255 + </state>
  1256 + </provider>
  1257 + </entry>
  1258 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.java">
  1259 + <provider selected="true" editor-type-id="text-editor">
  1260 + <state relative-caret-position="-18">
  1261 + <caret line="220" column="35" selection-start-line="220" selection-start-column="35" selection-end-line="220" selection-end-column="35" />
  1262 + </state>
  1263 + </provider>
  1264 + </entry>
  1265 + <entry file="file://$PROJECT_DIR$/src/main/resources/i18n/messages.properties">
  1266 + <provider selected="true" editor-type-id="text-editor" />
  1267 + </entry>
  1268 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java">
  1269 + <provider selected="true" editor-type-id="text-editor">
  1270 + <state relative-caret-position="291">
  1271 + <caret line="189" column="11" lean-forward="true" selection-start-line="189" selection-start-column="11" selection-end-line="189" selection-end-column="11" />
1159 1272 </state>
1160 1273 </provider>
1161 1274 </entry>
... ...
src/main/java/com/huaheng/pc/config/container/mapper/ContainerMapper.java
... ... @@ -2,7 +2,15 @@ package com.huaheng.pc.config.container.mapper;
2 2  
3 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4 import com.huaheng.pc.config.container.domain.Container;
  5 +import com.huaheng.pc.config.location.domain.Location;
  6 +import org.apache.ibatis.annotations.Param;
  7 +
  8 +import java.util.List;
5 9  
6 10 public interface ContainerMapper extends BaseMapper<Container> {
7 11  
  12 +
  13 + List<Location> getEmptyContainerInLocation(@Param("containerCode") String containerCode, @Param("locationCode") String locationCode, @Param("warehouseCode") String warehouseCode);
  14 +
  15 +
8 16 }
9 17 \ No newline at end of file
... ...
src/main/java/com/huaheng/pc/config/container/service/ContainerService.java
... ... @@ -3,6 +3,7 @@ package com.huaheng.pc.config.container.service;
3 3 import com.huaheng.framework.web.domain.AjaxResult;
4 4 import com.huaheng.pc.config.container.domain.Container;
5 5 import com.baomidou.mybatisplus.extension.service.IService;
  6 +import com.huaheng.pc.config.location.domain.Location;
6 7  
7 8 import java.util.List;
8 9  
... ... @@ -11,4 +12,7 @@ public interface ContainerService extends IService&lt;Container&gt;{
11 12 AjaxResult<List<Container>> insertContainer(String type, Integer quantity);
12 13  
13 14 String importMaterial(List<Container> containerList, Boolean updateSupport, String operName);
  15 +
  16 + List<Location> getEmptyContainerInLocation(String containerCode, String locationCode, String warehouseCode);
  17 +
14 18 }
... ...
src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java
... ... @@ -9,6 +9,7 @@ import com.huaheng.common.utils.security.ShiroUtils;
9 9 import com.huaheng.framework.web.domain.AjaxResult;
10 10 import com.huaheng.pc.config.containerType.service.ContainerTypeService;
11 11 import com.huaheng.pc.config.container.domain.ContainerStatus;
  12 +import com.huaheng.pc.config.location.domain.Location;
12 13 import org.springframework.stereotype.Service;
13 14 import javax.annotation.Resource;
14 15 import java.util.ArrayList;
... ... @@ -108,4 +109,13 @@ public class ContainerServiceImpl extends ServiceImpl&lt;ContainerMapper, Container
108 109 }
109 110 return successMsg.toString();
110 111 }
  112 +
  113 + /**
  114 + * 已入空容器展示
  115 + * */
  116 + @Override
  117 + public List<Location> getEmptyContainerInLocation(String containerCode, String locationCode, String warehouseCode) {
  118 + return containerMapper.getEmptyContainerInLocation(containerCode,locationCode,warehouseCode);
  119 + }
  120 +
111 121 }
... ...
src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java
... ... @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
4 4 import com.baomidou.mybatisplus.core.metadata.IPage;
5 5 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
6 6 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  7 +import com.huaheng.common.exception.service.ServiceException;
7 8 import com.huaheng.common.utils.StringUtils;
8 9 import com.huaheng.common.utils.security.ShiroUtils;
9 10 import com.huaheng.framework.aspectj.lang.annotation.Log;
... ... @@ -13,6 +14,8 @@ import com.huaheng.framework.web.domain.AjaxResult;
13 14 import com.huaheng.framework.web.page.PageDomain;
14 15 import com.huaheng.framework.web.page.TableDataInfo;
15 16 import com.huaheng.framework.web.page.TableSupport;
  17 +import com.huaheng.pc.config.container.service.ContainerService;
  18 +import com.huaheng.pc.config.location.domain.Location;
16 19 import com.huaheng.pc.config.material.service.MaterialServiceImpl;
17 20 import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader;
18 21 import com.huaheng.pc.inventory.inventoryHeader.service.InventoryHeaderService;
... ... @@ -37,7 +40,8 @@ public class InventoryHeaderController extends BaseController
37 40  
38 41 @Resource
39 42 private InventoryHeaderService inventoryHeaderService;
40   -
  43 + @Resource
  44 + private ContainerService containerService;
41 45  
42 46 @RequiresPermissions("inventory:inventoryHeader:view")
43 47 @GetMapping()
... ... @@ -95,6 +99,9 @@ public class InventoryHeaderController extends BaseController
95 99 @PostMapping("/transfer")
96 100 @ResponseBody
97 101 public AjaxResult transfer(String sourceLocation, String destinationLocation){
  102 + if(StringUtils.isEmpty(sourceLocation) || StringUtils.isEmpty(destinationLocation)){
  103 + throw new ServiceException("源库位和目标库位不能有空值!");
  104 + }
98 105 return inventoryHeaderService.transfer(sourceLocation,destinationLocation);
99 106 }
100 107  
... ... @@ -108,5 +115,109 @@ public class InventoryHeaderController extends BaseController
108 115 }
109 116 return inventoryHeaderService.createCheckOutTask(ids);
110 117 }
  118 +
  119 + /**
  120 + * 空托盘入库页面
  121 + */
  122 + @GetMapping("/emptyIn")
  123 + public String emptyIn(){
  124 + return prefix+"/emptyIn";
  125 + }
  126 +
  127 + /**
  128 + * 生成空托盘入库任务
  129 + * @param containerCode
  130 + * @param destinationLocation
  131 + * @return
  132 + */
  133 + //@RequiresPermissions("task:task:emptyIn")
  134 + @PostMapping("/emptyIn")
  135 + @Log(title = "任务-任务管理", operating = "生成空托盘入库任务", action = BusinessType.INSERT)
  136 + @ResponseBody
  137 + public AjaxResult emptyIn(String containerCode,String destinationLocation){
  138 + if(StringUtils.isEmpty(containerCode) || StringUtils.isEmpty(destinationLocation)){
  139 + throw new ServiceException("容器和目标库位不能有空值!");
  140 + }
  141 + return inventoryHeaderService.createEmptyIn(containerCode, destinationLocation);
  142 + }
  143 +
  144 + /**
  145 + * 空托盘出库页面
  146 + */
  147 + @GetMapping("/emptyOut")
  148 + public String emptyOut(){
  149 + return prefix+"/emptyOut";
  150 + }
  151 +
  152 + /**
  153 + * 生成空托盘出库任务
  154 + * @param containerCode
  155 + * @param sourceLocation
  156 + * @return
  157 + */
  158 + //@RequiresPermissions("task:task:emptyOut")
  159 + @PostMapping("/emptyOut")
  160 + @Log(title = "任务-任务管理", operating = "生成空托盘出库任务", action = BusinessType.INSERT)
  161 + @ResponseBody
  162 + public AjaxResult emptyOut(String containerCode,String sourceLocation){
  163 + if(StringUtils.isEmpty(containerCode) || StringUtils.isEmpty(sourceLocation)){
  164 + throw new ServiceException("容器和源库位不能有空值!");
  165 + }
  166 + return inventoryHeaderService.createEmptyOut(containerCode, sourceLocation);
  167 + }
  168 +
  169 + /**
  170 + * 空托盘出库查看页面
  171 + */
  172 + @GetMapping("/emptyCheckOut")
  173 + public String emptyCheckOut(){
  174 + return prefix+"/emptyCheckOut";
  175 + }
  176 +
  177 + /**
  178 + * 空托盘出库查看任务
  179 + * @param containerCode
  180 + * @param location
  181 + * @return
  182 + */
  183 + //@RequiresPermissions("task:task:emptyInOut")
  184 + @PostMapping("/emptyCheckOut")
  185 + @Log(title = "任务-任务管理", operating = "生成空托盘出库查看任务", action = BusinessType.INSERT)
  186 + @ResponseBody
  187 + public AjaxResult emptyCheckOut(String containerCode,String location){
  188 + /*if(StringUtils.isEmpty(containerCode) || StringUtils.isEmpty(location)){
  189 + throw new ServiceException("容器和库位不能有空值!");
  190 + }*/
  191 + return inventoryHeaderService.createEmptyCheckOut(containerCode, location);
  192 + }
  193 +
  194 + /**
  195 + * 空托盘显示
  196 + * @return
  197 + */
  198 + @GetMapping("/listEmpty")
  199 + public String listEmpty(){
  200 + return prefix+"/emptyContainer";
  201 + }
  202 +
  203 + /**
  204 + * 返回空托盘列表
  205 + * @param containerCode
  206 + * @param locationCode
  207 + * @return
  208 + */
  209 + @PostMapping("/listEmptyContainer")
  210 + @ResponseBody
  211 + public TableDataInfo listEmptyContainer(String containerCode, String locationCode)
  212 + {
  213 + containerCode = containerCode==null?"":containerCode.trim();
  214 + locationCode = locationCode==null?"":locationCode.trim();
  215 + startPage();
  216 + List<Location> list = containerService.getEmptyContainerInLocation(containerCode,locationCode,ShiroUtils.getWarehouseCode());
  217 + return getDataTable(list);
  218 + }
  219 +
  220 +
  221 +
111 222  
112 223 }
... ...
src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderService.java
... ... @@ -17,10 +17,18 @@ public interface InventoryHeaderService extends IService&lt;InventoryHeader&gt; {
17 17  
18 18 //移库查询入库组盘
19 19 int getUncompleteReceiptContainer(String locationCode,String warehouseCode);
  20 +
20 21 //移库查询出库组盘
21 22 int getUncompleteShipmentContainer(String sourceLocation, String warehouseCode);
22 23  
23 24  
  25 + AjaxResult createEmptyIn(String containerCode, String destinationLocation);
  26 +
  27 + AjaxResult createEmptyOut(String containerCode, String sourceLocation);
  28 +
  29 + AjaxResult createEmptyCheckOut(String containerCode, String location);
  30 +
  31 +
24 32 }
25 33  
26 34  
... ...
src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.java
1 1 package com.huaheng.pc.inventory.inventoryHeader.service;
2 2  
  3 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4 +import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  5 +import com.huaheng.common.exception.service.ServiceException;
  6 +import com.huaheng.common.utils.StringUtils;
  7 +import com.huaheng.common.utils.security.ShiroUtils;
3 8 import com.huaheng.framework.web.domain.AjaxResult;
  9 +import com.huaheng.pc.config.container.domain.Container;
  10 +import com.huaheng.pc.config.container.service.ContainerService;
  11 +import com.huaheng.pc.config.location.domain.Location;
  12 +import com.huaheng.pc.config.location.service.LocationService;
  13 +import com.huaheng.pc.config.warehouse.domain.Warehouse;
4 14 import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader;
  15 +import com.huaheng.pc.task.taskDetail.domain.TaskDetail;
5 16 import com.huaheng.pc.task.taskDetail.service.TaskDetailService;
6 17 import com.huaheng.pc.task.taskDetail.service.TaskDetailServiceImpl;
  18 +import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
7 19 import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
8 20 import com.huaheng.pc.task.taskHeader.service.TaskHeaderServiceImpl;
9 21 import org.springframework.stereotype.Service;
... ... @@ -12,6 +24,7 @@ import com.huaheng.pc.inventory.inventoryHeader.mapper.InventoryHeaderMapper;
12 24 import org.springframework.transaction.annotation.Transactional;
13 25  
14 26 import javax.annotation.Resource;
  27 +import java.util.Date;
15 28  
16 29 @Service
17 30 public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMapper, InventoryHeader> implements InventoryHeaderService {
... ... @@ -20,7 +33,13 @@ public class InventoryHeaderServiceImpl extends ServiceImpl&lt;InventoryHeaderMappe
20 33 @Resource
21 34 private TaskHeaderService taskHeaderService;
22 35 @Resource
  36 + private TaskDetailService taskDetailService;
  37 + @Resource
23 38 private InventoryHeaderMapper inventoryHeaderMapper;
  39 + @Resource
  40 + private ContainerService containerService;
  41 + @Resource
  42 + private LocationService locationService;
24 43  
25 44  
26 45  
... ... @@ -54,7 +73,241 @@ public class InventoryHeaderServiceImpl extends ServiceImpl&lt;InventoryHeaderMappe
54 73 return inventoryHeaderMapper.getUncompleteShipmentContainer(locationCode,warehouseCode);
55 74 }
56 75  
  76 + /**
  77 + * 空托入库
  78 + * */
  79 + @Transactional
  80 + @Override
  81 + public AjaxResult createEmptyIn(String containerCode, String destinationLocation) {
  82 + // 校验托盘
  83 + Container container = new Container();
  84 + container.setCode(containerCode);
  85 + container.setWarehouseCode(ShiroUtils.getWarehouseCode());
  86 + LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(container);
  87 + container = containerService.getOne(lambdaQueryWrapper);
  88 + if(container==null) {
  89 + return AjaxResult.error("容器不存在");
  90 + }
  91 + if (StringUtils.isNotEmpty(container.getLocationCode())) {
  92 + return AjaxResult.error("容器已在库位[" + container.getLocationCode() + "]上");
  93 + }
  94 + //库位
  95 + Location temp = new Location();
  96 + temp.setCode(destinationLocation);
  97 + temp.setWarehouseCode(ShiroUtils.getWarehouseCode());
  98 + LambdaQueryWrapper lambda = Wrappers.lambdaQuery(temp);
  99 + Location loc = locationService.getOne(lambda);
  100 + if(StringUtils.isNotEmpty(destinationLocation)) {
  101 + //校验目标地址
  102 + if (loc == null) {
  103 + return AjaxResult.error("目标库位不存在");
  104 + }
  105 + if (StringUtils.isNotEmpty(loc.getContainerCode())) {
  106 + return AjaxResult.error("目标库位已存在托盘");
  107 + }
  108 + if (!loc.getStatus().equals("empty")) {
  109 + return AjaxResult.error("目标库位非空闲");
  110 + }
  111 + }
  112 +
  113 + //判断托盘是否已经存在任务
  114 + Integer taskCount = taskHeaderService.UncompleteCount(containerCode);
  115 + if (taskCount != null && taskCount.intValue() > 0) {
  116 + return AjaxResult.error("容器已存在任务");
  117 + }
  118 +
  119 + //创建主任务
  120 + TaskHeader taskHeader = new TaskHeader();
  121 + taskHeader.setWarehouseCode(loc.getWarehouseCode());
  122 + taskHeader.setCompanyCode("空容器");//货主
  123 + taskHeader.setInternalTaskType(100); //入库内部类型都给100
  124 + taskHeader.setTaskType(500);
  125 + taskHeader.setContainerCode(container.getCode());
  126 + taskHeader.setStatus(1);
  127 + taskHeader.setFromLocation("");
  128 + taskHeader.setToLocation(loc.getCode());
  129 + taskHeader.setCreated(new Date());
  130 + taskHeader.setCreatedBy(ShiroUtils.getLoginName());
  131 + taskHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
  132 + taskHeader.setLastUpdated(new Date());
  133 + if(taskHeaderService.save(taskHeader)){
  134 + //锁定库位状态
  135 + locationService.updateStatus(loc.getContainerCode(),"lock");
  136 + }else{
  137 + throw new ServiceException("空托入库主表生成失败!");
  138 + }
  139 + //写入任务细表
  140 + TaskDetail taskDetail = new TaskDetail();
  141 + taskDetail.setTaskId(taskHeader.getId());//主单ID
  142 + taskDetail.setTaskType(taskHeader.getTaskType());
  143 + taskDetail.setInternalTaskType(taskHeader.getTaskType());
  144 + taskDetail.setWarehouseCode(taskHeader.getWarehouseCode());
  145 + taskDetail.setCompanyCode("空容器");
  146 + taskDetail.setFromLocation(taskHeader.getFromLocation());
  147 + taskDetail.setToLocation(taskHeader.getToLocation());
  148 + taskDetail.setContainerCode(taskHeader.getContainerCode());
  149 + taskDetail.setCreated(new Date());
  150 + taskDetail.setCreatedBy(ShiroUtils.getLoginName());
  151 + taskDetail.setLastUpdated(new Date());
  152 + taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
  153 + if(taskDetailService.save(taskDetail) == false){
  154 + throw new ServiceException("空托入库任务明细生成失败!");
  155 + }
  156 + return AjaxResult.success(taskHeader.getId());
  157 + }
  158 +
  159 + /**
  160 + *空托出库
  161 + * */
  162 + @Transactional
  163 + @Override
  164 + public AjaxResult createEmptyOut(String containerCode, String sourceLocation) {
  165 + // 检查容器
  166 + Container temp3 = new Container();
  167 + temp3.setCode(containerCode);
  168 + temp3.setWarehouseCode(ShiroUtils.getWarehouseCode());
  169 + LambdaQueryWrapper lambda3 = Wrappers.lambdaQuery(temp3);
  170 + Container container = containerService.getOne(lambda3);
  171 + if(container==null){
  172 + return AjaxResult.error("托盘不存在");
  173 + }
  174 + if (StringUtils.isEmpty(container.getLocationCode())|| !(container.getLocationCode().equals(sourceLocation))) {
  175 + return AjaxResult.error("容器不在库位[" + sourceLocation + "]上");
  176 + }
  177 + //检查库位
  178 + Location temp4 = new Location();
  179 + temp4.setCode(sourceLocation);
  180 + temp4.setWarehouseCode(ShiroUtils.getWarehouseCode());
  181 + LambdaQueryWrapper lamda4 = Wrappers.lambdaQuery(temp4);
  182 + Location loc = locationService.getOne(lamda4);
  183 + if(loc==null){
  184 + return AjaxResult.error("源货位不存在");
  185 + }
  186 + if(StringUtils.isEmpty(loc.getContainerCode())){
  187 + return AjaxResult.error("源货位没有托盘");
  188 + }
  189 + if(!loc.getStatus().equals("empty")){
  190 + return AjaxResult.error("源货位非空闲");
  191 + }
  192 + //判断托盘是否已经存在任务
  193 + Integer taskCount = taskHeaderService.UncompleteCount(containerCode);
  194 + if (taskCount != null && taskCount.intValue() > 0) {
  195 + return AjaxResult.error("容器已存在任务");
  196 + }
  197 +
  198 + //生成任务
  199 + TaskHeader taskHeader = new TaskHeader();
  200 + taskHeader.setWarehouseCode(loc.getWarehouseCode());
  201 + taskHeader.setCompanyCode("空容器");//货主
  202 + taskHeader.setInternalTaskType(200); //出库内部类型都给200
  203 + taskHeader.setTaskType(600);
  204 + taskHeader.setContainerCode(container.getCode());
  205 + taskHeader.setStatus(1);
  206 + taskHeader.setFromLocation(sourceLocation);
  207 + taskHeader.setToLocation("");
  208 + taskHeader.setCreated(new Date());
  209 + taskHeader.setCreatedBy(ShiroUtils.getLoginName());
  210 + taskHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
  211 + taskHeader.setLastUpdated(new Date());
  212 + if(taskHeaderService.save(taskHeader)){
  213 + //锁定库位状态
  214 + locationService.updateStatus(loc.getContainerCode(),"lock");
  215 + }else{
  216 + throw new ServiceException("空托出库主表生成失败!");
  217 + }
  218 + //写入任务细表
  219 + TaskDetail taskDetail = new TaskDetail();
  220 + taskDetail.setTaskId(taskHeader.getId());//主单ID
  221 + taskDetail.setTaskType(taskHeader.getTaskType());
  222 + taskDetail.setInternalTaskType(taskHeader.getTaskType());
  223 + taskDetail.setWarehouseCode(taskHeader.getWarehouseCode());
  224 + taskDetail.setCompanyCode("空容器");
  225 + taskDetail.setFromLocation(taskHeader.getFromLocation());
  226 + taskDetail.setToLocation(taskHeader.getToLocation());
  227 + taskDetail.setContainerCode(taskHeader.getContainerCode());
  228 + taskDetail.setCreated(new Date());
  229 + taskDetail.setCreatedBy(ShiroUtils.getLoginName());
  230 + taskDetail.setLastUpdated(new Date());
  231 + taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
  232 + if(taskDetailService.save(taskDetail) == false){
  233 + throw new ServiceException("空托出库任务明细生成失败!");
  234 + }
  235 + return AjaxResult.success(taskHeader.getId());
  236 + }
57 237  
  238 + /**
  239 + *空托出库查看
  240 + * */
  241 + @Transactional
  242 + @Override
  243 + public AjaxResult createEmptyCheckOut(String containerCode, String location) {
  244 + // 检查容器
  245 + Container temp5 = new Container();
  246 + temp5.setCode(containerCode);
  247 + temp5.setWarehouseCode(ShiroUtils.getWarehouseCode());
  248 + LambdaQueryWrapper lambda5 = Wrappers.lambdaQuery(temp5);
  249 + Container container = containerService.getOne(lambda5);
  250 + if(container==null){
  251 + return AjaxResult.error("托盘不存在");
  252 + }
  253 + if (StringUtils.isEmpty(container.getLocationCode())|| !(container.getLocationCode().equals(location))) {
  254 + return AjaxResult.error("容器不在库位[" + location + "]上");
  255 + }
  256 + //检查库位
  257 + Location temp6 = new Location();
  258 + temp6.setCode(location);
  259 + temp6.setWarehouseCode(ShiroUtils.getWarehouseCode());
  260 + LambdaQueryWrapper lamdba6 = Wrappers.lambdaQuery(temp6);
  261 + Location loc = locationService.getOne(lamdba6);
  262 + if(loc==null){
  263 + return AjaxResult.error("源货位不存在");
  264 + }
  265 + if(StringUtils.isEmpty(loc.getContainerCode())){
  266 + return AjaxResult.error("源货位没有托盘");
  267 + }
  268 + if(!loc.getStatus().equals("empty")){
  269 + return AjaxResult.error("源货位非空闲");
  270 + }
  271 + //创建任务
  272 + TaskHeader taskHeader = new TaskHeader();
  273 + taskHeader.setWarehouseCode(loc.getWarehouseCode());
  274 + taskHeader.setCompanyCode("空容器");//货主
  275 + taskHeader.setInternalTaskType(200); //出库内部类型都给200
  276 + taskHeader.setTaskType(900);
  277 + taskHeader.setContainerCode(container.getCode());
  278 + taskHeader.setStatus(1);
  279 + taskHeader.setFromLocation(location);
  280 + taskHeader.setToLocation(location);
  281 + taskHeader.setCreated(new Date());
  282 + taskHeader.setCreatedBy(ShiroUtils.getLoginName());
  283 + taskHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
  284 + taskHeader.setLastUpdated(new Date());
  285 + if(taskHeaderService.save(taskHeader)){
  286 + //锁定库位状态
  287 + locationService.updateStatus(loc.getContainerCode(),"lock");
  288 + }else{
  289 + throw new ServiceException("空托出库主表生成失败!");
  290 + }
  291 + //写入任务细表
  292 + TaskDetail taskDetail = new TaskDetail();
  293 + taskDetail.setTaskId(taskHeader.getId());//主单ID
  294 + taskDetail.setTaskType(taskHeader.getTaskType());
  295 + taskDetail.setInternalTaskType(taskHeader.getTaskType());
  296 + taskDetail.setWarehouseCode(taskHeader.getWarehouseCode());
  297 + taskDetail.setCompanyCode("空容器");
  298 + taskDetail.setFromLocation(taskHeader.getFromLocation());
  299 + taskDetail.setToLocation(taskHeader.getToLocation());
  300 + taskDetail.setContainerCode(taskHeader.getContainerCode());
  301 + taskDetail.setCreated(new Date());
  302 + taskDetail.setCreatedBy(ShiroUtils.getLoginName());
  303 + taskDetail.setLastUpdated(new Date());
  304 + taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
  305 + if(taskDetailService.save(taskDetail) == false){
  306 + throw new ServiceException("空托出库任务明细生成失败!");
  307 + }
  308 + return AjaxResult.success(taskHeader.getId());
  309 +
  310 + }
58 311  
59 312  
60 313  
... ...
src/main/java/com/huaheng/pc/task/taskHeader/mapper/TaskHeaderMapper.java
... ... @@ -10,4 +10,7 @@ import java.util.Map;
10 10 public interface TaskHeaderMapper extends BaseMapper<TaskHeader> {
11 11  
12 12 List<Map<String, Object>> getReceiptTask(@Param("taskId") Integer taskId);
  13 +
  14 + Integer UncompleteCount(@Param("containerCode") String containerCode, @Param("warehouseCode") String warehouseCode);
  15 +
13 16 }
14 17 \ No newline at end of file
... ...
src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java
... ... @@ -29,4 +29,7 @@ public interface TaskHeaderService extends IService&lt;TaskHeader&gt;{
29 29  
30 30 AjaxResult completeCycleCountOrSeeOutTask(TaskHeader taskHeader);
31 31  
  32 + Integer UncompleteCount(String containerCode);
  33 +
  34 +
32 35 }
... ...
src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java
... ... @@ -77,8 +77,15 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
77 77  
78 78  
79 79 /**
  80 + * 查询容器有无任务
  81 + * */
  82 + @Override
  83 + public Integer UncompleteCount(String ContainerCode) {
  84 + return taskHeaderMapper.UncompleteCount(ContainerCode, ShiroUtils.getWarehouseCode());
  85 + }
  86 +
  87 + /**
80 88 * 生成出库任务
81   - *
82 89 * @param shipmentTaskCreateModel
83 90 * @return
84 91 */
... ... @@ -445,9 +452,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
445 452 * */
446 453 @Transactional
447 454 public AjaxResult createTransferTask(String sourceLocation, String destinationLocation) {
448   - if(StringUtils.isEmpty(sourceLocation) || StringUtils.isEmpty(destinationLocation)){
449   - throw new ServiceException("源库位和目标库位不能有空值!");
450   - }
  455 +
451 456 //源库位校验
452 457 Location temp1 = new Location();
453 458 temp1.setCode(sourceLocation);
... ... @@ -496,7 +501,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
496 501 TaskHeader taskHeader = new TaskHeader();
497 502 taskHeader.setWarehouseCode(ShiroUtils.getWarehouseCode());
498 503 taskHeader.setCompanyCode(ShiroUtils.getCompanyCodeList().get(0));//获取第一个货主
499   - taskHeader.setInternalTaskType(800);
  504 + taskHeader.setInternalTaskType(500);
500 505 taskHeader.setTaskType(800);
501 506 taskHeader.setContainerCode(loc1.getContainerCode());
502 507 taskHeader.setStatus(1);
... ... @@ -686,7 +691,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
686 691 TaskHeader taskHeader = new TaskHeader();
687 692 taskHeader.setWarehouseCode(inventoryHeader.getWarehouseCode());
688 693 taskHeader.setCompanyCode(inventoryHeader.getCompanyCode());//货主
689   - taskHeader.setInternalTaskType(900);
  694 + taskHeader.setInternalTaskType(200);
690 695 taskHeader.setTaskType(900);
691 696 taskHeader.setContainerCode(inventoryHeader.getContainerCode());
692 697 taskHeader.setStatus(1);
... ... @@ -728,7 +733,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
728 733 }
729 734  
730 735 /**
731   - * 盘点,出库查看完成
  736 + * 完成
  737 + * 盘点,出库查看
732 738 * 更新状态即可
733 739 * */
734 740 @Transactional
... ...
src/main/resources/mybatis/config/ContainerMapper.xml
... ... @@ -33,4 +33,21 @@
33 33 lastUpdated, lastUpdatedBy, `status`, `enable`, printNum, version, userDef1, userDef2,
34 34 userDef3, userDef4, userDef5, userDef6, userDef7, userDef8, processStamp
35 35 </sql>
  36 +
  37 + <select id="getEmptyContainerInLocation" resultType="com.huaheng.pc.config.location.domain.Location">
  38 + SELECT * FROM location t
  39 + <where>
  40 + t.zoneCode = 'LK' AND t.warehouseCode = #{warehouseCode} AND t.status='empty' AND t.containerCode !='' AND t.containerCode is not NULL
  41 + AND t.`code` NOT in (SELECT b.locationCode FROM inventory_header b WHERE b.warehouseCode = #{warehouseCode} )
  42 + <if test="containerCode != null and containerCode !=''">
  43 + and t.containerCode = #{containerCode}
  44 + </if>
  45 + <if test="locationCode != null and locationCode !=''">
  46 + and t.`code` = #{locationCode}
  47 + </if>
  48 + </where>
  49 + </select>
  50 +
  51 +
  52 +
36 53 </mapper>
37 54 \ No newline at end of file
... ...
src/main/resources/mybatis/task/TaskHeaderMapper.xml
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3 3 <mapper namespace="com.huaheng.pc.task.taskHeader.mapper.TaskHeaderMapper">
4   - <resultMap id="BaseResultMap" type="com.huaheng.pc.task.taskHeader.domain.TaskHeader">
5   - <!--@mbg.generated-->
6   - <id column="id" jdbcType="INTEGER" property="id" />
7   - <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode" />
8   - <result column="companyCode" jdbcType="VARCHAR" property="companyCode" />
9   - <result column="taskType" jdbcType="VARCHAR" property="taskType" />
10   - <result column="internalTaskType" jdbcType="VARCHAR" property="internalTaskType" />
11   - <result column="referenceId" jdbcType="INTEGER" property="referenceId" />
12   - <result column="referenceCode" jdbcType="VARCHAR" property="referenceCode" />
13   - <result column="assignedUser" jdbcType="VARCHAR" property="assignedUser" />
14   - <result column="confirmedBy" jdbcType="VARCHAR" property="confirmedBy" />
15   - <result column="waveId" jdbcType="INTEGER" property="waveId" />
16   - <result column="pickingCartCode" jdbcType="VARCHAR" property="pickingCartCode" />
17   - <result column="pickingCartPos" jdbcType="VARCHAR" property="pickingCartPos" />
18   - <result column="fromLocation" jdbcType="VARCHAR" property="fromLocation" />
19   - <result column="toLocation" jdbcType="VARCHAR" property="toLocation" />
20   - <result column="containerCode" jdbcType="VARCHAR" property="containerCode" />
21   - <result column="startPickDateTime" jdbcType="TIMESTAMP" property="startPickDateTime" />
22   - <result column="endPickDateTime" jdbcType="TIMESTAMP" property="endPickDateTime" />
23   - <result column="rebatchLoc" jdbcType="VARCHAR" property="rebatchLoc" />
24   - <result column="finishRebatch" jdbcType="INTEGER" property="finishRebatch" />
25   - <result column="rebatchGroupCode" jdbcType="VARCHAR" property="rebatchGroupCode" />
26   - <result column="allowRebatch" jdbcType="INTEGER" property="allowRebatch" />
27   - <result column="taskProcessType" jdbcType="VARCHAR" property="taskProcessType" />
28   - <result column="rebinBench" jdbcType="VARCHAR" property="rebinBench" />
29   - <result column="rebined" jdbcType="INTEGER" property="rebined" />
30   - <result column="startRebinDateTime" jdbcType="TIMESTAMP" property="startRebinDateTime" />
31   - <result column="endRebinDateTime" jdbcType="TIMESTAMP" property="endRebinDateTime" />
32   - <result column="rebinedBy" jdbcType="VARCHAR" property="rebinedBy" />
33   - <result column="exceptionCode" jdbcType="VARCHAR" property="exceptionCode" />
34   - <result column="exceptionHandledBy" jdbcType="VARCHAR" property="exceptionHandledBy" />
35   - <result column="created" jdbcType="TIMESTAMP" property="created" />
36   - <result column="createdBy" jdbcType="VARCHAR" property="createdBy" />
37   - <result column="lastUpdated" jdbcType="TIMESTAMP" property="lastUpdated" />
38   - <result column="lastUpdatedBy" jdbcType="VARCHAR" property="lastUpdatedBy" />
39   - <result column="version" jdbcType="INTEGER" property="version" />
40   - <result column="userDef1" jdbcType="VARCHAR" property="userDef1" />
41   - <result column="userDef2" jdbcType="VARCHAR" property="userDef2" />
42   - <result column="userDef3" jdbcType="VARCHAR" property="userDef3" />
43   - <result column="processStamp" jdbcType="VARCHAR" property="processStamp" />
44   - </resultMap>
45   -<select id="getReceiptTask" resultType="java.util.Map">
  4 + <resultMap id="BaseResultMap" type="com.huaheng.pc.task.taskHeader.domain.TaskHeader">
  5 + <!--@mbg.generated-->
  6 + <id column="id" jdbcType="INTEGER" property="id"/>
  7 + <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode"/>
  8 + <result column="companyCode" jdbcType="VARCHAR" property="companyCode"/>
  9 + <result column="taskType" jdbcType="VARCHAR" property="taskType"/>
  10 + <result column="internalTaskType" jdbcType="VARCHAR" property="internalTaskType"/>
  11 + <result column="referenceId" jdbcType="INTEGER" property="referenceId"/>
  12 + <result column="referenceCode" jdbcType="VARCHAR" property="referenceCode"/>
  13 + <result column="assignedUser" jdbcType="VARCHAR" property="assignedUser"/>
  14 + <result column="confirmedBy" jdbcType="VARCHAR" property="confirmedBy"/>
  15 + <result column="waveId" jdbcType="INTEGER" property="waveId"/>
  16 + <result column="pickingCartCode" jdbcType="VARCHAR" property="pickingCartCode"/>
  17 + <result column="pickingCartPos" jdbcType="VARCHAR" property="pickingCartPos"/>
  18 + <result column="fromLocation" jdbcType="VARCHAR" property="fromLocation"/>
  19 + <result column="toLocation" jdbcType="VARCHAR" property="toLocation"/>
  20 + <result column="containerCode" jdbcType="VARCHAR" property="containerCode"/>
  21 + <result column="startPickDateTime" jdbcType="TIMESTAMP" property="startPickDateTime"/>
  22 + <result column="endPickDateTime" jdbcType="TIMESTAMP" property="endPickDateTime"/>
  23 + <result column="rebatchLoc" jdbcType="VARCHAR" property="rebatchLoc"/>
  24 + <result column="finishRebatch" jdbcType="INTEGER" property="finishRebatch"/>
  25 + <result column="rebatchGroupCode" jdbcType="VARCHAR" property="rebatchGroupCode"/>
  26 + <result column="allowRebatch" jdbcType="INTEGER" property="allowRebatch"/>
  27 + <result column="taskProcessType" jdbcType="VARCHAR" property="taskProcessType"/>
  28 + <result column="rebinBench" jdbcType="VARCHAR" property="rebinBench"/>
  29 + <result column="rebined" jdbcType="INTEGER" property="rebined"/>
  30 + <result column="startRebinDateTime" jdbcType="TIMESTAMP" property="startRebinDateTime"/>
  31 + <result column="endRebinDateTime" jdbcType="TIMESTAMP" property="endRebinDateTime"/>
  32 + <result column="rebinedBy" jdbcType="VARCHAR" property="rebinedBy"/>
  33 + <result column="exceptionCode" jdbcType="VARCHAR" property="exceptionCode"/>
  34 + <result column="exceptionHandledBy" jdbcType="VARCHAR" property="exceptionHandledBy"/>
  35 + <result column="created" jdbcType="TIMESTAMP" property="created"/>
  36 + <result column="createdBy" jdbcType="VARCHAR" property="createdBy"/>
  37 + <result column="lastUpdated" jdbcType="TIMESTAMP" property="lastUpdated"/>
  38 + <result column="lastUpdatedBy" jdbcType="VARCHAR" property="lastUpdatedBy"/>
  39 + <result column="version" jdbcType="INTEGER" property="version"/>
  40 + <result column="userDef1" jdbcType="VARCHAR" property="userDef1"/>
  41 + <result column="userDef2" jdbcType="VARCHAR" property="userDef2"/>
  42 + <result column="userDef3" jdbcType="VARCHAR" property="userDef3"/>
  43 + <result column="processStamp" jdbcType="VARCHAR" property="processStamp"/>
  44 + </resultMap>
  45 + <select id="getReceiptTask" resultType="java.util.Map">
46 46 SELECT rd.id receiptDetailId,rd.receiptId,td.taskId, td.warehouseCode, td.id taskDetailId, td.status,
47 47 td.containerCode, td.qty, td.materialCode,rd.totalQty,td.materialSpec,
48 48 rd.receiptCode,td.inventorySts,
... ... @@ -50,16 +50,25 @@
50 50 rd.manufactureDate, rd.expirationDate
51 51 FROM task_detail td
52 52 INNER JOIN receipt_detail rd ON rd.id = td.billDetailId AND td.taskId = #{taskId,jdbcType=INTEGER}
53   -</select>
  53 + </select>
  54 +
  55 + <select id="UncompleteCount" resultType="java.lang.Integer">
  56 + SELECT COUNT(*) AS count FROM task_header WHERE status &lt; 10 AND containerCode = #{containerCode} AND warehouseCode=#{warehouseCode}
  57 + </select>
  58 +
  59 +
  60 +
  61 +
  62 + <sql id="Base_Column_List">
  63 + <!--@mbg.generated-->
  64 + id, warehouseCode, companyCode, taskType, internalTaskType, referenceId, referenceCode, fromLocation,
  65 + assignedUser, confirmedBy, waveId, pickingCartCode, pickingCartPos, containerCode, toLocation,
  66 + startPickDateTime, endPickDateTime, rebatchLoc, finishRebatch, rebatchGroupCode,
  67 + allowRebatch, taskProcessType, rebinBench, rebined, startRebinDateTime, endRebinDateTime,
  68 + rebinedBy, exceptionCode, exceptionHandledBy, created, createdBy, lastUpdated, lastUpdatedBy,
  69 + version, userDef1, userDef2, userDef3,
  70 + processStamp
  71 + </sql>
  72 +
54 73  
55   - <sql id="Base_Column_List">
56   - <!--@mbg.generated-->
57   - id, warehouseCode, companyCode, taskType, internalTaskType, referenceId, referenceCode, fromLocation,
58   - assignedUser, confirmedBy, waveId, pickingCartCode, pickingCartPos, containerCode, toLocation,
59   - startPickDateTime, endPickDateTime, rebatchLoc, finishRebatch, rebatchGroupCode,
60   - allowRebatch, taskProcessType, rebinBench, rebined, startRebinDateTime, endRebinDateTime,
61   - rebinedBy, exceptionCode, exceptionHandledBy, created, createdBy, lastUpdated, lastUpdatedBy,
62   - version, userDef1, userDef2, userDef3,
63   - processStamp
64   - </sql>
65 74 </mapper>
66 75 \ No newline at end of file
... ...
src/main/resources/templates/inventory/inventoryHeader/emptyCheckOut.html 0 → 100644
  1 +<!DOCTYPE HTML>
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org">
  3 +<meta charset="utf-8">
  4 +<head th:include="include :: header"></head>
  5 +<body class="white-bg">
  6 +<div class="wrapper wrapper-content animated fadeInRight ibox-content">
  7 + <form class="form-horizontal m" id="form-task-emptyInOut">
  8 + <div class="form-group">
  9 + <label class="col-sm-3 control-label">容器编码:</label>
  10 + <div class="col-sm-8">
  11 + <input id="containerCode" name="containerCode" class="form-control" type="text">
  12 + </div>
  13 + </div>
  14 + <div class="form-group">
  15 + <label class="col-sm-3 control-label">源库位编码:</label>
  16 + <div class="col-sm-8">
  17 + <input id="location" name="location" class="form-control" type="text">
  18 + </div>
  19 + </div>
  20 + <div class="form-group">
  21 + <div class="form-control-static col-sm-offset-9">
  22 + <input type="button" class="btn-success btn" onclick="selectEmptyInOut()" value="选取" />
  23 + <button type="submit" class="btn btn-primary">提交</button>
  24 + <button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
  25 + </div>
  26 + </div>
  27 + </form>
  28 +</div>
  29 +<div th:include="include::footer"></div>
  30 +<script type="text/javascript">
  31 + var prefix = ctx + "inventory/inventoryHeader"
  32 + $("#form-task-emptyCheckOut").validate({
  33 + rules:{
  34 + containerCode:{
  35 + required:true,
  36 + },
  37 + location:{
  38 + required:true,
  39 + },
  40 + },
  41 + submitHandler: function(form) {
  42 + $.operate.save(prefix + "/emptyCheckOut", $('#form-task-emptyInOut').serialize());
  43 + }
  44 + });
  45 +
  46 + function selectEmptyInOut() {
  47 + $.modal.open("空托盘选取",prefix+"/listEmpty",780);
  48 + }
  49 +</script>
  50 +</body>
  51 +</html>
... ...
src/main/resources/templates/inventory/inventoryHeader/emptyContainer.html 0 → 100644
  1 +<!DOCTYPE HTML>
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
  3 +<meta charset="utf-8">
  4 +<head th:include="include :: header"></head>
  5 +<body class="gray-bg">
  6 +<div class="container-div">
  7 + <row>
  8 + <div class="col-sm-12 select-info">
  9 + <form id="location-form">
  10 + <div class="select-list">
  11 + <ul>
  12 + <li>
  13 + 容器编码:<input type="text" name="containerCode"/>
  14 + </li>
  15 + <li>
  16 + 库位编码:<input type="text" name="locationCode"/>
  17 + </li>
  18 + <li>
  19 + <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
  20 + <!--<a class="btn btn-success btn-rounded btn-sm" onclick="$.table.exportExcel()" shiro:hasPermission="general:location:export"><i class="fa fa-download"></i>&nbsp;导出</a>-->
  21 + </li>
  22 + </ul>
  23 + </div>
  24 + </form>
  25 + </div>
  26 +
  27 + <div class="col-sm-12 select-info">
  28 + <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table>
  29 + </div>
  30 + </row>
  31 +</div>
  32 +<div th:include="include :: footer"></div>
  33 +<script th:inline="javascript">
  34 + var prefix = ctx + "inventory/inventoryHeader";
  35 + var editFlag = [[${@permission.hasPermi('general:location:edit')}]];
  36 + var removeFlag = [[${@permission.hasPermi('general:location:remove')}]];
  37 + var datas = [[${@dict.getType('sys_normal_disable')}]];
  38 + var locationTypes = [[${@locationType.getLocationPrefix()}]];
  39 + var locationStatus = [[${@dict.getType('locationStatus')}]];
  40 +
  41 + $(function() {
  42 + var options = {
  43 + url: prefix + "/listEmptyContainer",
  44 + createUrl: prefix + "/add",
  45 + updateUrl: prefix + "/edit/{id}",
  46 + removeUrl: prefix + "/remove",
  47 + modalName: "库位",
  48 + search: false,
  49 + columns: [
  50 + {
  51 + title: '操作',
  52 + align: 'center',
  53 + formatter: function(value, row, index) {
  54 + var actions = [];
  55 + actions.push('<a class="btn btn-success btn-xs" href="#" onclick="select(\'' + row.containerCode + '\',\''+row.code+'\',\''+row.status+'\')"><i class="fa fa-edit"></i>选取</a> ');
  56 + // actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
  57 + return actions.join('');
  58 + }
  59 + },
  60 + {
  61 + field : 'id',
  62 + title : 'id'
  63 + },
  64 + {
  65 + field : 'code',
  66 + title : '库位'
  67 + },
  68 + // {
  69 + // field : 'warehouseId',
  70 + // title : '仓库Id'
  71 + // },
  72 + // {
  73 + // field : 'warehouseCode',
  74 + // title : '仓库编码'
  75 + // },
  76 + {
  77 + field : 'row',
  78 + title : '行'
  79 + },
  80 + {
  81 + field : 'line',
  82 + title : '列'
  83 + },
  84 + {
  85 + field : 'layer',
  86 + title : '层'
  87 + },
  88 + {
  89 + field : 'grid',
  90 + title : '格'
  91 + },
  92 + {
  93 + field : 'type',
  94 + title : '库位类型' ,
  95 + align: 'center',
  96 + formatter: function(value, row, index) {
  97 + return $.table.selectPrefixToName(locationTypes, value);
  98 + }
  99 + },
  100 + // {
  101 + // field : 'containerId',
  102 + // title : '容器id号' ,
  103 + // visible:false
  104 + // },
  105 + {
  106 + field : 'containerCode',
  107 + title : '容器编码'
  108 + },
  109 + {
  110 + field : 'zoneId',
  111 + title : '区域id' ,
  112 + visible:false
  113 + },
  114 + {
  115 + field : 'zoneCode',
  116 + title : '区域编码'
  117 + },
  118 + {
  119 + field : 'status',
  120 + title : '状态' ,
  121 + align: 'center',
  122 + formatter: function(value, row, index) {
  123 + return $.table.selectDictLabel(locationStatus, value);
  124 + }
  125 + },
  126 + {
  127 + field : 'lastCycleCountDate',
  128 + title : '上次盘点日期' ,
  129 + visible:false
  130 + },
  131 + {
  132 + field : 'created',
  133 + title : '创建时间'
  134 + },
  135 + {
  136 + field : 'createdBy',
  137 + title : '创建用户'
  138 + },
  139 + {
  140 + field : 'lastUpdated',
  141 + title : '创建时间'
  142 + },
  143 + {
  144 + field : 'lastUpdatedBy',
  145 + title : '更新用户'
  146 + },
  147 + {
  148 + field : 'enable',
  149 + title : '是否有效' ,
  150 + align: 'center',
  151 + formatter: function(value, row, index) {
  152 + return $.table.selectDictLabel(datas, value);
  153 + }
  154 + },
  155 + // {
  156 + // field : 'deleted',
  157 + // title : '是否删除'
  158 + // },
  159 + /*{
  160 + field : 'userDef1',
  161 + title : '自定义字段1' ,
  162 + visible:false
  163 + },
  164 + {
  165 + field : 'userDef2',
  166 + title : '自定义字段2' ,
  167 + visible:false
  168 + },
  169 + {
  170 + field : 'userDef3',
  171 + title : '自定义字段3' ,
  172 + visible:false
  173 + },
  174 + {
  175 + field : 'userDef4',
  176 + title : '自定义字段4' ,
  177 + visible:false
  178 + },
  179 + {
  180 + field : 'userDef5',
  181 + title : '自定义字段5' ,
  182 + visible:false
  183 + }*/
  184 + ]
  185 + };
  186 + $.table.init(options);
  187 + });
  188 + function select(containerCode,code,status) {
  189 + if(status!="empty"){
  190 + $.modal.alertError("所选库位非空闲");
  191 + return;
  192 + }
  193 + parent.$('#containerCode').val(containerCode);
  194 + parent.$('#sourceLocation').val(code);
  195 + $.modal.close();
  196 + }
  197 +</script>
  198 +</body>
  199 +</html>
0 200 \ No newline at end of file
... ...
src/main/resources/templates/inventory/inventoryHeader/emptyIn.html 0 → 100644
  1 +<!DOCTYPE HTML>
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org">
  3 +<meta charset="utf-8">
  4 +<head th:include="include :: header"></head>
  5 +<body class="white-bg">
  6 +<div class="wrapper wrapper-content animated fadeInRight ibox-content">
  7 + <form class="form-horizontal m" id="form-task-emptyIn">
  8 + <div class="form-group">
  9 + <label class="col-sm-3 control-label">容器编号:</label>
  10 + <div class="col-sm-8">
  11 + <input id="containerCode" name="containerCode" class="form-control" type="text" >
  12 + </div>
  13 + </div>
  14 + <div class="form-group">
  15 + <label class="col-sm-3 control-label">目的库位:</label>
  16 + <div class="col-sm-8">
  17 + <input id="destinationLocation" name="destinationLocation" class="form-control" type="text" >
  18 + </div>
  19 + </div>
  20 + <div class="form-group">
  21 + <div class="form-control-static col-sm-offset-9">
  22 + <button type="submit" class="btn btn-primary">提交</button>
  23 + <button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
  24 + </div>
  25 + </div>
  26 + </form>
  27 +</div>
  28 +<div th:include="include::footer"></div>
  29 +<script type="text/javascript">
  30 + var prefix = ctx + "inventory/inventoryHeader"
  31 + $("#form-task-emptyIn").validate({
  32 + rules:{
  33 + containerCode:{
  34 + required:true,
  35 + },
  36 + destinationLocation:{
  37 + required:true,
  38 + },
  39 + },
  40 + submitHandler: function(form) {
  41 + $.operate.save(prefix + "/emptyIn", $('#form-task-emptyIn').serialize());
  42 + }
  43 + });
  44 +</script>
  45 +</body>
  46 +</html>
... ...
src/main/resources/templates/inventory/inventoryHeader/emptyOut.html 0 → 100644
  1 +<!DOCTYPE HTML>
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org">
  3 +<meta charset="utf-8">
  4 +<head th:include="include :: header"></head>
  5 +<body class="white-bg">
  6 +<div class="wrapper wrapper-content animated fadeInRight ibox-content">
  7 + <form class="form-horizontal m" id="form-task-emptyOut">
  8 + <div class="form-group">
  9 + <label class="col-sm-3 control-label">容器编号:</label>
  10 + <div class="col-sm-8">
  11 + <input id="containerCode" name="containerCode" class="form-control" type="text">
  12 + </div>
  13 + </div>
  14 + <div class="form-group">
  15 + <label class="col-sm-3 control-label">源库位:</label>
  16 + <div class="col-sm-8">
  17 + <input id="sourceLocation" name="sourceLocation" class="form-control" type="text">
  18 + </div>
  19 + </div>
  20 + <div class="form-group">
  21 + <div class="form-control-static col-sm-offset-9">
  22 + <input type="button" class="btn-success btn" onclick="selectEmptyOut()" value="选取" />
  23 + <button type="submit" class="btn btn-primary">提交</button>
  24 + <button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
  25 + </div>
  26 + </div>
  27 + </form>
  28 +</div>
  29 +<div th:include="include::footer"></div>
  30 +<script type="text/javascript">
  31 + var prefix = ctx + "inventory/inventoryHeader"
  32 + $("#form-task-emptyOut").validate({
  33 + rules:{
  34 + containerCode:{
  35 + required:true,
  36 + },
  37 + sourceLocation:{
  38 + required:true,
  39 + },
  40 + },
  41 + submitHandler: function(form) {
  42 + $.operate.save(prefix + "/emptyOut", $('#form-task-emptyOut').serialize());
  43 + }
  44 + });
  45 +
  46 + function selectEmptyOut() {
  47 + $.modal.open("空托盘选取",prefix+"/listEmpty",780);
  48 + }
  49 +</script>
  50 +</body>
  51 +</html>
... ...
src/main/resources/templates/inventory/inventoryHeader/inventoryHeader.html
... ... @@ -59,6 +59,15 @@
59 59 <a class="btn btn-outline btn-primary btn-rounded" onclick="checkOut()">
60 60 <i class="fa fa-eye"></i> 出库查看
61 61 </a>
  62 + <a class="btn btn-outline btn-info btn-rounded" onclick="emptyIn()" shiro:hasPermission="task:task:emptyIn">
  63 + <i class="fa fa-level-down"></i> 空托入库
  64 + </a>
  65 + <a class="btn btn-outline btn-default btn-rounded" onclick="emptyCheckOut()" >
  66 + <i class="fa fa fa-eye"></i> 空托出库查看
  67 + </a>
  68 + <a class="btn btn-outline btn-info btn-rounded" onclick="emptyOut()" shiro:hasPermission="task:task:emptyOut">
  69 + <i class="fa fa-level-up"></i> 空托出库
  70 + </a>
62 71 </div>
63 72 <div class="col-sm-12 select-info">
64 73 <table id="bootstrap-table" data-mobile-responsive="true"
... ... @@ -286,6 +295,20 @@
286 295 $.modal.open("立库移库", url);
287 296 }
288 297  
  298 + function emptyIn() {
  299 + $.modal.open("空托盘入库",prefix+"/emptyIn")
  300 + }
  301 +
  302 + function emptyOut() {
  303 + $.modal.open("空托盘出库",prefix+"/emptyOut")
  304 + }
  305 +
  306 + function emptyCheckOut() {
  307 + $.modal.open("空托盘出库查看",prefix+"/emptyCheckOut")
  308 + }
  309 +
  310 +
  311 +
289 312  
290 313 </script>
291 314 </body>
... ...