Commit f79cc1ac549ae11c0d3a36127793365db30de4c3

Authored by mahuandong
2 parents 5b8e7e50 372cfce7

Merge remote-tracking branch 'origin/develop' into develop

# Conflicts:
#	.idea/workspace.xml
Showing 22 changed files with 815 additions and 151 deletions
.idea/workspace.xml
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <project version="4"> 2 <project version="4">
3 <component name="ChangeListManager"> 3 <component name="ChangeListManager">
4 - <list default="true" id="9ff7b25e-dc1a-4859-8a0c-00039489e359" name="Default Changelist" comment="添加容器导入和导出导入模板"> 4 + <list default="true" id="9ff7b25e-dc1a-4859-8a0c-00039489e359" name="Default Changelist" comment="">
5 <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> 5 <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
6 - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/general/container/controller/ContainerController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/general/container/controller/ContainerController.java" afterDir="false" />  
7 - <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" />  
8 - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java" afterDir="false" /> 6 + <change beforePath="$PROJECT_DIR$/sql/bug" beforeDir="false" />
  7 + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/domain/InventoryDetail.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/domain/InventoryDetail.java" afterDir="false" />
  8 + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/domain/InventoryHeader.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/domain/InventoryHeader.java" afterDir="false" />
9 </list> 9 </list>
10 <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> 10 <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
11 <option name="SHOW_DIALOG" value="false" /> 11 <option name="SHOW_DIALOG" value="false" />
@@ -43,6 +43,64 @@ @@ -43,6 +43,64 @@
43 </expand> 43 </expand>
44 <select /> 44 <select />
45 </component> 45 </component>
  46 + <component name="FileEditorManager">
  47 + <leaf>
  48 + <file pinned="false" current-in-tab="false">
  49 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java">
  50 + <provider selected="true" editor-type-id="text-editor">
  51 + <state relative-caret-position="-304">
  52 + <caret line="25" column="13" selection-start-line="25" selection-start-column="13" selection-end-line="25" selection-end-column="13" />
  53 + </state>
  54 + </provider>
  55 + </entry>
  56 + </file>
  57 + <file pinned="false" current-in-tab="false">
  58 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/domain/ShipmentCombinationModel.java">
  59 + <provider selected="true" editor-type-id="text-editor">
  60 + <state relative-caret-position="68">
  61 + <caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
  62 + </state>
  63 + </provider>
  64 + </entry>
  65 + </file>
  66 + <file pinned="false" current-in-tab="false">
  67 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java">
  68 + <provider selected="true" editor-type-id="text-editor">
  69 + <state relative-caret-position="202">
  70 + <caret line="76" column="16" lean-forward="true" selection-start-line="76" selection-start-column="16" selection-end-line="76" selection-end-column="16" />
  71 + </state>
  72 + </provider>
  73 + </entry>
  74 + </file>
  75 + <file pinned="false" current-in-tab="true">
  76 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/domain/InventoryDetail.java">
  77 + <provider selected="true" editor-type-id="text-editor">
  78 + <state relative-caret-position="1156">
  79 + <caret line="81" column="11" lean-forward="true" selection-start-line="81" selection-start-column="11" selection-end-line="81" selection-end-column="11" />
  80 + </state>
  81 + </provider>
  82 + </entry>
  83 + </file>
  84 + <file pinned="false" current-in-tab="false">
  85 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/domain/InventoryHeader.java">
  86 + <provider selected="true" editor-type-id="text-editor">
  87 + <state relative-caret-position="60">
  88 + <caret line="155" selection-start-line="155" selection-end-line="155" />
  89 + </state>
  90 + </provider>
  91 + </entry>
  92 + </file>
  93 + <file pinned="false" current-in-tab="false">
  94 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java">
  95 + <provider selected="true" editor-type-id="text-editor">
  96 + <state relative-caret-position="200">
  97 + <caret line="30" column="13" selection-start-line="30" selection-start-column="13" selection-end-line="30" selection-end-column="13" />
  98 + </state>
  99 + </provider>
  100 + </entry>
  101 + </file>
  102 + </leaf>
  103 + </component>
46 <component name="FileTemplateManagerImpl"> 104 <component name="FileTemplateManagerImpl">
47 <option name="RECENT_TEMPLATES"> 105 <option name="RECENT_TEMPLATES">
48 <list> 106 <list>
@@ -61,6 +119,14 @@ @@ -61,6 +119,14 @@
61 </map> 119 </map>
62 </option> 120 </option>
63 </component> 121 </component>
  122 + <component name="IdeDocumentHistory">
  123 + <option name="CHANGED_PATHS">
  124 + <list>
  125 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/domain/InventoryHeader.java" />
  126 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/domain/InventoryDetail.java" />
  127 + </list>
  128 + </option>
  129 + </component>
64 <component name="IgnoredFileRootStore"> 130 <component name="IgnoredFileRootStore">
65 <option name="generatedRoots"> 131 <option name="generatedRoots">
66 <set> 132 <set>
@@ -68,10 +134,217 @@ @@ -68,10 +134,217 @@
68 </set> 134 </set>
69 </option> 135 </option>
70 </component> 136 </component>
  137 + <component name="ProjectFrameBounds" extendedState="6">
  138 + <option name="x" value="-10" />
  139 + <option name="y" value="-10" />
  140 + <option name="width" value="1940" />
  141 + <option name="height" value="1050" />
  142 + </component>
71 <component name="ProjectId" id="1P5Ngjh73HToCarlEZkqMxrL7pm" /> 143 <component name="ProjectId" id="1P5Ngjh73HToCarlEZkqMxrL7pm" />
72 <component name="ProjectLevelVcsManager"> 144 <component name="ProjectLevelVcsManager">
73 <ConfirmationsSetting value="2" id="Add" /> 145 <ConfirmationsSetting value="2" id="Add" />
74 </component> 146 </component>
  147 + <component name="ProjectView">
  148 + <navigator proportions="" version="1">
  149 + <foldersAlwaysOnTop value="true" />
  150 + </navigator>
  151 + <panes>
  152 + <pane id="PackagesPane" />
  153 + <pane id="ProjectPane">
  154 + <subPane>
  155 + <expand>
  156 + <path>
  157 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  158 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  159 + </path>
  160 + <path>
  161 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  162 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  163 + <item name="src" type="462c0819:PsiDirectoryNode" />
  164 + </path>
  165 + <path>
  166 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  167 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  168 + <item name="src" type="462c0819:PsiDirectoryNode" />
  169 + <item name="main" type="462c0819:PsiDirectoryNode" />
  170 + </path>
  171 + <path>
  172 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  173 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  174 + <item name="src" type="462c0819:PsiDirectoryNode" />
  175 + <item name="main" type="462c0819:PsiDirectoryNode" />
  176 + <item name="java" type="462c0819:PsiDirectoryNode" />
  177 + </path>
  178 + <path>
  179 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  180 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  181 + <item name="src" type="462c0819:PsiDirectoryNode" />
  182 + <item name="main" type="462c0819:PsiDirectoryNode" />
  183 + <item name="java" type="462c0819:PsiDirectoryNode" />
  184 + <item name="com" type="462c0819:PsiDirectoryNode" />
  185 + </path>
  186 + <path>
  187 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  188 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  189 + <item name="src" type="462c0819:PsiDirectoryNode" />
  190 + <item name="main" type="462c0819:PsiDirectoryNode" />
  191 + <item name="java" type="462c0819:PsiDirectoryNode" />
  192 + <item name="com" type="462c0819:PsiDirectoryNode" />
  193 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  194 + </path>
  195 + <path>
  196 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  197 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  198 + <item name="src" type="462c0819:PsiDirectoryNode" />
  199 + <item name="main" type="462c0819:PsiDirectoryNode" />
  200 + <item name="java" type="462c0819:PsiDirectoryNode" />
  201 + <item name="com" type="462c0819:PsiDirectoryNode" />
  202 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  203 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  204 + </path>
  205 + <path>
  206 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  207 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  208 + <item name="src" type="462c0819:PsiDirectoryNode" />
  209 + <item name="main" type="462c0819:PsiDirectoryNode" />
  210 + <item name="java" type="462c0819:PsiDirectoryNode" />
  211 + <item name="com" type="462c0819:PsiDirectoryNode" />
  212 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  213 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  214 + <item name="inventory" type="462c0819:PsiDirectoryNode" />
  215 + </path>
  216 + <path>
  217 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  218 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  219 + <item name="src" type="462c0819:PsiDirectoryNode" />
  220 + <item name="main" type="462c0819:PsiDirectoryNode" />
  221 + <item name="java" type="462c0819:PsiDirectoryNode" />
  222 + <item name="com" type="462c0819:PsiDirectoryNode" />
  223 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  224 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  225 + <item name="inventory" type="462c0819:PsiDirectoryNode" />
  226 + <item name="inventoryDetail" type="462c0819:PsiDirectoryNode" />
  227 + </path>
  228 + <path>
  229 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  230 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  231 + <item name="src" type="462c0819:PsiDirectoryNode" />
  232 + <item name="main" type="462c0819:PsiDirectoryNode" />
  233 + <item name="java" type="462c0819:PsiDirectoryNode" />
  234 + <item name="com" type="462c0819:PsiDirectoryNode" />
  235 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  236 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  237 + <item name="inventory" type="462c0819:PsiDirectoryNode" />
  238 + <item name="inventoryDetail" type="462c0819:PsiDirectoryNode" />
  239 + <item name="domain" type="462c0819:PsiDirectoryNode" />
  240 + </path>
  241 + <path>
  242 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  243 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  244 + <item name="src" type="462c0819:PsiDirectoryNode" />
  245 + <item name="main" type="462c0819:PsiDirectoryNode" />
  246 + <item name="java" type="462c0819:PsiDirectoryNode" />
  247 + <item name="com" type="462c0819:PsiDirectoryNode" />
  248 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  249 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  250 + <item name="inventory" type="462c0819:PsiDirectoryNode" />
  251 + <item name="inventoryHeader" type="462c0819:PsiDirectoryNode" />
  252 + </path>
  253 + <path>
  254 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  255 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  256 + <item name="src" type="462c0819:PsiDirectoryNode" />
  257 + <item name="main" type="462c0819:PsiDirectoryNode" />
  258 + <item name="java" type="462c0819:PsiDirectoryNode" />
  259 + <item name="com" type="462c0819:PsiDirectoryNode" />
  260 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  261 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  262 + <item name="inventory" type="462c0819:PsiDirectoryNode" />
  263 + <item name="inventoryHeader" type="462c0819:PsiDirectoryNode" />
  264 + <item name="controller" type="462c0819:PsiDirectoryNode" />
  265 + </path>
  266 + <path>
  267 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  268 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  269 + <item name="src" type="462c0819:PsiDirectoryNode" />
  270 + <item name="main" type="462c0819:PsiDirectoryNode" />
  271 + <item name="java" type="462c0819:PsiDirectoryNode" />
  272 + <item name="com" type="462c0819:PsiDirectoryNode" />
  273 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  274 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  275 + <item name="inventory" type="462c0819:PsiDirectoryNode" />
  276 + <item name="inventoryHeader" type="462c0819:PsiDirectoryNode" />
  277 + <item name="domain" type="462c0819:PsiDirectoryNode" />
  278 + </path>
  279 + <path>
  280 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  281 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  282 + <item name="src" type="462c0819:PsiDirectoryNode" />
  283 + <item name="main" type="462c0819:PsiDirectoryNode" />
  284 + <item name="java" type="462c0819:PsiDirectoryNode" />
  285 + <item name="com" type="462c0819:PsiDirectoryNode" />
  286 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  287 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  288 + <item name="shipment" type="462c0819:PsiDirectoryNode" />
  289 + </path>
  290 + <path>
  291 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  292 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  293 + <item name="src" type="462c0819:PsiDirectoryNode" />
  294 + <item name="main" type="462c0819:PsiDirectoryNode" />
  295 + <item name="java" type="462c0819:PsiDirectoryNode" />
  296 + <item name="com" type="462c0819:PsiDirectoryNode" />
  297 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  298 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  299 + <item name="shipment" type="462c0819:PsiDirectoryNode" />
  300 + <item name="shipmentContainerHeader" type="462c0819:PsiDirectoryNode" />
  301 + </path>
  302 + <path>
  303 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  304 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  305 + <item name="src" type="462c0819:PsiDirectoryNode" />
  306 + <item name="main" type="462c0819:PsiDirectoryNode" />
  307 + <item name="java" type="462c0819:PsiDirectoryNode" />
  308 + <item name="com" type="462c0819:PsiDirectoryNode" />
  309 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  310 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  311 + <item name="shipment" type="462c0819:PsiDirectoryNode" />
  312 + <item name="shipmentContainerHeader" type="462c0819:PsiDirectoryNode" />
  313 + <item name="domain" type="462c0819:PsiDirectoryNode" />
  314 + </path>
  315 + <path>
  316 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  317 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  318 + <item name="src" type="462c0819:PsiDirectoryNode" />
  319 + <item name="main" type="462c0819:PsiDirectoryNode" />
  320 + <item name="java" type="462c0819:PsiDirectoryNode" />
  321 + <item name="com" type="462c0819:PsiDirectoryNode" />
  322 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  323 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  324 + <item name="shipment" type="462c0819:PsiDirectoryNode" />
  325 + <item name="shipmentContainerHeader" type="462c0819:PsiDirectoryNode" />
  326 + <item name="mapper" type="462c0819:PsiDirectoryNode" />
  327 + </path>
  328 + <path>
  329 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  330 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  331 + <item name="src" type="462c0819:PsiDirectoryNode" />
  332 + <item name="main" type="462c0819:PsiDirectoryNode" />
  333 + <item name="java" type="462c0819:PsiDirectoryNode" />
  334 + <item name="com" type="462c0819:PsiDirectoryNode" />
  335 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  336 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  337 + <item name="shipment" type="462c0819:PsiDirectoryNode" />
  338 + <item name="shipmentContainerHeader" type="462c0819:PsiDirectoryNode" />
  339 + <item name="service" type="462c0819:PsiDirectoryNode" />
  340 + </path>
  341 + </expand>
  342 + <select />
  343 + </subPane>
  344 + </pane>
  345 + <pane id="Scope" />
  346 + </panes>
  347 + </component>
75 <component name="PropertiesComponent"> 348 <component name="PropertiesComponent">
76 <property name="ASKED_ADD_EXTERNAL_FILES" value="true" /> 349 <property name="ASKED_ADD_EXTERNAL_FILES" value="true" />
77 <property name="DatabaseDriversLRU" value="mysql" /> 350 <property name="DatabaseDriversLRU" value="mysql" />
@@ -130,7 +403,7 @@ @@ -130,7 +403,7 @@
130 </component> 403 </component>
131 <component name="RunManager"> 404 <component name="RunManager">
132 <configuration name="HuaHengApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot"> 405 <configuration name="HuaHengApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
133 - <module name="huaheng" /> 406 + <module name="wms2" />
134 <option name="SPRING_BOOT_MAIN_CLASS" value="com.huaheng.HuaHengApplication" /> 407 <option name="SPRING_BOOT_MAIN_CLASS" value="com.huaheng.HuaHengApplication" />
135 <option name="ALTERNATIVE_JRE_PATH" /> 408 <option name="ALTERNATIVE_JRE_PATH" />
136 <option name="UPDATE_ACTION_UPDATE_POLICY" value="UpdateClassesAndResources" /> 409 <option name="UPDATE_ACTION_UPDATE_POLICY" value="UpdateClassesAndResources" />
@@ -153,7 +426,16 @@ @@ -153,7 +426,16 @@
153 <serviceView> 426 <serviceView>
154 <option name="contentProportion" value="0.18875067" /> 427 <option name="contentProportion" value="0.18875067" />
155 <treeState> 428 <treeState>
156 - <expand /> 429 + <expand>
  430 + <path>
  431 + <item name="services root" type="e789fda9:ObjectUtils$Sentinel" />
  432 + <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@5ef312b7" type="7427dc5b:ServiceModel$ServiceGroupNode" />
  433 + </path>
  434 + <path>
  435 + <item name="services root" type="e789fda9:ObjectUtils$Sentinel" />
  436 + <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@28150ae" type="7427dc5b:ServiceModel$ServiceGroupNode" />
  437 + </path>
  438 + </expand>
157 <select /> 439 <select />
158 </treeState> 440 </treeState>
159 </serviceView> 441 </serviceView>
@@ -191,9 +473,7 @@ @@ -191,9 +473,7 @@
191 <workItem from="1565829438280" duration="3502000" /> 473 <workItem from="1565829438280" duration="3502000" />
192 <workItem from="1565832950552" duration="86000" /> 474 <workItem from="1565832950552" duration="86000" />
193 <workItem from="1565833039573" duration="288000" /> 475 <workItem from="1565833039573" duration="288000" />
194 - <workItem from="1565833342181" duration="20223000" />  
195 - <workItem from="1565916336398" duration="4223000" />  
196 - <workItem from="1565923508645" duration="4968000" /> 476 + <workItem from="1565833342181" duration="13946000" />
197 </task> 477 </task>
198 <task id="LOCAL-00001" summary="添加库位、库位类型增删改查接口"> 478 <task id="LOCAL-00001" summary="添加库位、库位类型增删改查接口">
199 <created>1565226427512</created> 479 <created>1565226427512</created>
@@ -286,30 +566,45 @@ @@ -286,30 +566,45 @@
286 <option name="project" value="LOCAL" /> 566 <option name="project" value="LOCAL" />
287 <updated>1565833218584</updated> 567 <updated>1565833218584</updated>
288 </task> 568 </task>
289 - <task id="LOCAL-00014" summary="添加承运商页面,入库单类型">  
290 - <created>1565856453372</created>  
291 - <option name="number" value="00014" />  
292 - <option name="presentableId" value="LOCAL-00014" />  
293 - <option name="project" value="LOCAL" />  
294 - <updated>1565856453372</updated>  
295 - </task>  
296 - <task id="LOCAL-00015" summary="添加导入模板列表">  
297 - <created>1565861068194</created>  
298 - <option name="number" value="00015" />  
299 - <option name="presentableId" value="LOCAL-00015" />  
300 - <option name="project" value="LOCAL" />  
301 - <updated>1565861068194</updated>  
302 - </task>  
303 - <task id="LOCAL-00016" summary="添加容器导入和导出导入模板">  
304 - <created>1565863093904</created>  
305 - <option name="number" value="00016" />  
306 - <option name="presentableId" value="LOCAL-00016" />  
307 - <option name="project" value="LOCAL" />  
308 - <updated>1565863093904</updated>  
309 - </task>  
310 - <option name="localTasksCounter" value="17" /> 569 + <option name="localTasksCounter" value="14" />
311 <servers /> 570 <servers />
312 </component> 571 </component>
  572 + <component name="ToolWindowManager">
  573 + <frame x="-7" y="-7" width="1550" height="838" extended-state="6" />
  574 + <editor active="true" />
  575 + <layout>
  576 + <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.2627346" />
  577 + <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
  578 + <window_info id="Web" order="2" side_tool="true" />
  579 + <window_info id="Designer" order="3" />
  580 + <window_info id="UI Designer" order="4" />
  581 + <window_info id="Favorites" order="5" side_tool="true" />
  582 + <window_info anchor="bottom" id="Messages" visible="true" weight="0.06798867" />
  583 + <window_info anchor="bottom" id="MyBatis Log" />
  584 + <window_info anchor="bottom" id="Message" order="0" />
  585 + <window_info anchor="bottom" id="Find" order="1" />
  586 + <window_info anchor="bottom" id="Run" order="2" />
  587 + <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
  588 + <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
  589 + <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
  590 + <window_info anchor="bottom" id="TODO" order="6" />
  591 + <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
  592 + <window_info anchor="bottom" id="Version Control" order="8" />
  593 + <window_info anchor="bottom" id="Run Dashboard" order="9" />
  594 + <window_info anchor="bottom" id="Spring" order="10" />
  595 + <window_info anchor="bottom" id="Database Changes" order="11" />
  596 + <window_info anchor="bottom" id="Event Log" order="12" side_tool="true" />
  597 + <window_info anchor="bottom" id="Java Enterprise" order="13" />
  598 + <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
  599 + <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
  600 + <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
  601 + <window_info anchor="right" id="Palette" order="3" />
  602 + <window_info anchor="right" id="Maven" order="4" />
  603 + <window_info anchor="right" id="Bean Validation" order="5" />
  604 + <window_info anchor="right" id="Database" order="6" />
  605 + <window_info anchor="right" id="Palette&#9;" order="7" />
  606 + </layout>
  607 + </component>
313 <component name="TypeScriptGeneratedFilesManager"> 608 <component name="TypeScriptGeneratedFilesManager">
314 <option name="version" value="1" /> 609 <option name="version" value="1" />
315 </component> 610 </component>
@@ -319,6 +614,12 @@ @@ -319,6 +614,12 @@
319 <entry key="MAIN"> 614 <entry key="MAIN">
320 <value> 615 <value>
321 <State> 616 <State>
  617 + <option name="RECENTLY_FILTERED_USER_GROUPS">
  618 + <collection />
  619 + </option>
  620 + <option name="RECENTLY_FILTERED_BRANCH_GROUPS">
  621 + <collection />
  622 + </option>
322 <option name="COLUMN_ORDER" /> 623 <option name="COLUMN_ORDER" />
323 </State> 624 </State>
324 </value> 625 </value>
@@ -354,10 +655,7 @@ @@ -354,10 +655,7 @@
354 <MESSAGE value="添加商品、商品详情页面" /> 655 <MESSAGE value="添加商品、商品详情页面" />
355 <MESSAGE value="添加承运商" /> 656 <MESSAGE value="添加承运商" />
356 <MESSAGE value="添加物料导入、导出模板,添加Excel导入导出配置文件" /> 657 <MESSAGE value="添加物料导入、导出模板,添加Excel导入导出配置文件" />
357 - <MESSAGE value="添加承运商页面,入库单类型" />  
358 - <MESSAGE value="添加导入模板列表" />  
359 - <MESSAGE value="添加容器导入和导出导入模板" />  
360 - <option name="LAST_COMMIT_MESSAGE" value="添加容器导入和导出导入模板" /> 658 + <option name="LAST_COMMIT_MESSAGE" value="添加物料导入、导出模板,添加Excel导入导出配置文件" />
361 </component> 659 </component>
362 <component name="XDebuggerManager"> 660 <component name="XDebuggerManager">
363 <breakpoint-manager> 661 <breakpoint-manager>
@@ -365,27 +663,79 @@ @@ -365,27 +663,79 @@
365 <line-breakpoint enabled="true" type="java-line"> 663 <line-breakpoint enabled="true" type="java-line">
366 <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/general/material/controller/MaterialController.java</url> 664 <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/general/material/controller/MaterialController.java</url>
367 <line>198</line> 665 <line>198</line>
  666 + <properties />
368 <option name="timeStamp" value="11" /> 667 <option name="timeStamp" value="11" />
369 </line-breakpoint> 668 </line-breakpoint>
370 <line-breakpoint enabled="true" type="java-line"> 669 <line-breakpoint enabled="true" type="java-line">
371 <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/common/utils/poi/ExcelUtil.java</url> 670 <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/common/utils/poi/ExcelUtil.java</url>
372 <line>302</line> 671 <line>302</line>
  672 + <properties />
373 <option name="timeStamp" value="12" /> 673 <option name="timeStamp" value="12" />
374 </line-breakpoint> 674 </line-breakpoint>
375 <line-breakpoint enabled="true" type="java-line"> 675 <line-breakpoint enabled="true" type="java-line">
376 <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/general/material/controller/MaterialController.java</url> 676 <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/general/material/controller/MaterialController.java</url>
377 <line>187</line> 677 <line>187</line>
  678 + <properties />
378 <option name="timeStamp" value="16" /> 679 <option name="timeStamp" value="16" />
379 </line-breakpoint> 680 </line-breakpoint>
380 <line-breakpoint enabled="true" type="java-line"> 681 <line-breakpoint enabled="true" type="java-line">
381 <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/general/material/service/MaterialServiceImpl.java</url> 682 <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/general/material/service/MaterialServiceImpl.java</url>
382 <line>66</line> 683 <line>66</line>
  684 + <properties />
383 <option name="timeStamp" value="24" /> 685 <option name="timeStamp" value="24" />
384 </line-breakpoint> 686 </line-breakpoint>
385 </breakpoints> 687 </breakpoints>
386 </breakpoint-manager> 688 </breakpoint-manager>
387 </component> 689 </component>
388 - <component name="com.intellij.coverage.CoverageDataManagerImpl">  
389 - <SUITE FILE_PATH="coverage/wmsv2$HuaHengApplication.ic" NAME="HuaHengApplication Coverage Results" MODIFIED="1565752188059" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" /> 690 + <component name="editorHistoryManager">
  691 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/domain/InventoryHeader.java">
  692 + <provider selected="true" editor-type-id="text-editor">
  693 + <state relative-caret-position="60">
  694 + <caret line="155" selection-start-line="155" selection-end-line="155" />
  695 + </state>
  696 + </provider>
  697 + </entry>
  698 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java">
  699 + <provider selected="true" editor-type-id="text-editor">
  700 + <state relative-caret-position="200">
  701 + <caret line="30" column="13" selection-start-line="30" selection-start-column="13" selection-end-line="30" selection-end-column="13" />
  702 + </state>
  703 + </provider>
  704 + </entry>
  705 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java">
  706 + <provider selected="true" editor-type-id="text-editor">
  707 + <state relative-caret-position="-304">
  708 + <caret line="25" column="13" selection-start-line="25" selection-start-column="13" selection-end-line="25" selection-end-column="13" />
  709 + </state>
  710 + </provider>
  711 + </entry>
  712 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/domain/ShipmentContainerHeader.java">
  713 + <provider selected="true" editor-type-id="text-editor">
  714 + <state relative-caret-position="-356">
  715 + <caret line="118" column="16" selection-start-line="118" selection-start-column="16" selection-end-line="118" selection-end-column="16" />
  716 + </state>
  717 + </provider>
  718 + </entry>
  719 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/domain/ShipmentCombinationModel.java">
  720 + <provider selected="true" editor-type-id="text-editor">
  721 + <state relative-caret-position="68">
  722 + <caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
  723 + </state>
  724 + </provider>
  725 + </entry>
  726 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java">
  727 + <provider selected="true" editor-type-id="text-editor">
  728 + <state relative-caret-position="202">
  729 + <caret line="76" column="16" lean-forward="true" selection-start-line="76" selection-start-column="16" selection-end-line="76" selection-end-column="16" />
  730 + </state>
  731 + </provider>
  732 + </entry>
  733 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/domain/InventoryDetail.java">
  734 + <provider selected="true" editor-type-id="text-editor">
  735 + <state relative-caret-position="1156">
  736 + <caret line="81" column="11" lean-forward="true" selection-start-line="81" selection-start-column="11" selection-end-line="81" selection-end-column="11" />
  737 + </state>
  738 + </provider>
  739 + </entry>
390 </component> 740 </component>
391 </project> 741 </project>
392 \ No newline at end of file 742 \ No newline at end of file
sql/bug deleted
1 -  
2 -  
3 -  
4 -  
5 -  
6 -  
7 -  
8 -  
9 -  
10 -  
11 -  
12 -  
13 -  
src/main/java/com/huaheng/pc/general/location/mapper/LocationMapper.java
@@ -2,6 +2,10 @@ package com.huaheng.pc.general.location.mapper; @@ -2,6 +2,10 @@ package com.huaheng.pc.general.location.mapper;
2 2
3 import com.baomidou.mybatisplus.core.mapper.BaseMapper; 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 import com.huaheng.pc.general.location.domain.Location; 4 import com.huaheng.pc.general.location.domain.Location;
  5 +import org.apache.ibatis.annotations.Param;
5 6
6 public interface LocationMapper extends BaseMapper<Location> { 7 public interface LocationMapper extends BaseMapper<Location> {
  8 +
  9 + void updateStatus(@Param("warehouseCode") String warehouseCode, @Param("code") String code, @Param("status") String status);
  10 +
7 } 11 }
8 \ No newline at end of file 12 \ No newline at end of file
src/main/java/com/huaheng/pc/general/location/service/LocationService.java
@@ -6,4 +6,6 @@ public interface LocationService extends IService&lt;Location&gt;{ @@ -6,4 +6,6 @@ public interface LocationService extends IService&lt;Location&gt;{
6 6
7 boolean insertLocation(Location location); 7 boolean insertLocation(Location location);
8 8
  9 + void updateStatus(String locationCode, String status);
  10 +
9 } 11 }
src/main/java/com/huaheng/pc/general/location/service/LocationServiceImpl.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
4 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 4 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5 import com.baomidou.mybatisplus.core.toolkit.Wrappers; 5 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
6 import com.huaheng.common.exception.service.ServiceException; 6 import com.huaheng.common.exception.service.ServiceException;
  7 +import com.huaheng.common.utils.StringUtils;
7 import com.huaheng.common.utils.security.ShiroUtils; 8 import com.huaheng.common.utils.security.ShiroUtils;
8 import com.huaheng.pc.config.locationType.domain.LocationType; 9 import com.huaheng.pc.config.locationType.domain.LocationType;
9 import com.huaheng.pc.config.locationType.service.LocationTypeService; 10 import com.huaheng.pc.config.locationType.service.LocationTypeService;
@@ -29,6 +30,8 @@ public class LocationServiceImpl extends ServiceImpl&lt;LocationMapper, Location&gt; i @@ -29,6 +30,8 @@ public class LocationServiceImpl extends ServiceImpl&lt;LocationMapper, Location&gt; i
29 private LocationTypeService locationTypeService; 30 private LocationTypeService locationTypeService;
30 @Resource 31 @Resource
31 private ZoneService zoneService; 32 private ZoneService zoneService;
  33 + @Resource
  34 + private LocationMapper locationMapper;
32 35
33 @Override 36 @Override
34 public boolean insertLocation(Location location) { 37 public boolean insertLocation(Location location) {
@@ -94,4 +97,11 @@ public class LocationServiceImpl extends ServiceImpl&lt;LocationMapper, Location&gt; i @@ -94,4 +97,11 @@ public class LocationServiceImpl extends ServiceImpl&lt;LocationMapper, Location&gt; i
94 Boolean result = locationService.saveBatch(locations); 97 Boolean result = locationService.saveBatch(locations);
95 return result; 98 return result;
96 } 99 }
  100 +
  101 + @Override
  102 + public void updateStatus(String locationCode, String status) {
  103 + if (StringUtils.isNotEmpty(locationCode)) {
  104 + locationMapper.updateStatus(ShiroUtils.getWarehouseCode(), locationCode, status);
  105 + }
  106 + }
97 } 107 }
src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java
@@ -22,10 +22,10 @@ import javax.annotation.Resource; @@ -22,10 +22,10 @@ import javax.annotation.Resource;
22 * 22 *
23 */ 23 */
24 @Controller 24 @Controller
25 -@RequestMapping("/inventory/inventoryHeader") 25 +@RequestMapping("/inventory/inventoryDetail")
26 public class InventoryDetailController extends BaseController 26 public class InventoryDetailController extends BaseController
27 { 27 {
28 - private String prefix = "inventoryHeader/inventoryHeader"; 28 + private String prefix = "inventoryHeader/inventoryDetail";
29 29
30 @Resource 30 @Resource
31 private MaterialServiceImpl materialService; 31 private MaterialServiceImpl materialService;
@@ -34,17 +34,17 @@ public class InventoryDetailController extends BaseController @@ -34,17 +34,17 @@ public class InventoryDetailController extends BaseController
34 34
35 35
36 36
37 - @RequiresPermissions("inventoryHeader:inventoryHeader:view") 37 + @RequiresPermissions("inventoryDetail:inventoryDetail:view")
38 @GetMapping() 38 @GetMapping()
39 public String inventory() 39 public String inventory()
40 { 40 {
41 - return prefix + "/inventoryHeader"; 41 + return prefix + "/inventoryDetail";
42 } 42 }
43 43
44 /** 44 /**
45 * 查询库存列表 45 * 查询库存列表
46 */ 46 */
47 - @RequiresPermissions("inventoryHeader:inventoryHeader:list") 47 + @RequiresPermissions("inventoryDetail:inventoryDetail:list")
48 @Log(title = "库存-库存查看",operating = "查看库存列表", action = BusinessType.GRANT) 48 @Log(title = "库存-库存查看",operating = "查看库存列表", action = BusinessType.GRANT)
49 @PostMapping("/inventoryLook") 49 @PostMapping("/inventoryLook")
50 @ResponseBody 50 @ResponseBody
@@ -60,7 +60,7 @@ public class InventoryDetailController extends BaseController @@ -60,7 +60,7 @@ public class InventoryDetailController extends BaseController
60 } 60 }
61 61
62 /**移库*/ 62 /**移库*/
63 - @RequiresPermissions("inventoryHeader:inventoryHeader:transfer") 63 + @RequiresPermissions("inventoryDetail:inventoryDetail:transfer")
64 @PostMapping("/transfer") 64 @PostMapping("/transfer")
65 @ResponseBody 65 @ResponseBody
66 public AjaxResult transfer(String sourceLocation, String destinationLocation, Integer companyId, String companyCode){ 66 public AjaxResult transfer(String sourceLocation, String destinationLocation, Integer companyId, String companyCode){
@@ -69,7 +69,7 @@ public class InventoryDetailController extends BaseController @@ -69,7 +69,7 @@ public class InventoryDetailController extends BaseController
69 } 69 }
70 70
71 /**出库查看*/ 71 /**出库查看*/
72 - @RequiresPermissions("inventoryHeader:inventoryHeader:seeOut") 72 + @RequiresPermissions("inventoryDetail:inventoryDetail:seeOut")
73 @PostMapping("/createCheckOutTask") 73 @PostMapping("/createCheckOutTask")
74 @ResponseBody 74 @ResponseBody
75 public AjaxResult createCheckOutTask(String ids){ 75 public AjaxResult createCheckOutTask(String ids){
src/main/java/com/huaheng/pc/inventory/inventoryDetail/domain/InventoryDetail.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField; @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
5 import com.baomidou.mybatisplus.annotation.TableId; 5 import com.baomidou.mybatisplus.annotation.TableId;
6 import com.baomidou.mybatisplus.annotation.TableName; 6 import com.baomidou.mybatisplus.annotation.TableName;
7 import java.io.Serializable; 7 import java.io.Serializable;
  8 +import java.math.BigDecimal;
8 import java.util.Date; 9 import java.util.Date;
9 import lombok.Data; 10 import lombok.Data;
10 11
@@ -75,19 +76,19 @@ public class InventoryDetail implements Serializable { @@ -75,19 +76,19 @@ public class InventoryDetail implements Serializable {
75 * 在库数量 76 * 在库数量
76 */ 77 */
77 @TableField(value = "qty") 78 @TableField(value = "qty")
78 - private Integer qty; 79 + private BigDecimal qty;
79 80
80 /** 81 /**
81 * 任务数量 82 * 任务数量
82 */ 83 */
83 @TableField(value = "taskQty") 84 @TableField(value = "taskQty")
84 - private Integer taskQty; 85 + private BigDecimal taskQty;
85 86
86 /** 87 /**
87 * 冻结数量 88 * 冻结数量
88 */ 89 */
89 @TableField(value = "lockedQty") 90 @TableField(value = "lockedQty")
90 - private Integer lockedQty; 91 + private BigDecimal lockedQty;
91 92
92 /** 93 /**
93 * 库存状态 94 * 库存状态
src/main/java/com/huaheng/pc/inventory/inventoryHeader/domain/InventoryHeader.java
@@ -71,7 +71,7 @@ public class InventoryHeader implements Serializable { @@ -71,7 +71,7 @@ public class InventoryHeader implements Serializable {
71 private Integer totalQty; 71 private Integer totalQty;
72 72
73 /** 73 /**
74 - * 总数量 74 + * 总行数
75 */ 75 */
76 @TableField(value = "totalLines") 76 @TableField(value = "totalLines")
77 private Integer totalLines; 77 private Integer totalLines;
@@ -155,36 +155,6 @@ public class InventoryHeader implements Serializable { @@ -155,36 +155,6 @@ public class InventoryHeader implements Serializable {
155 private String userDef3; 155 private String userDef3;
156 156
157 /** 157 /**
158 - * 自定义字段4  
159 - */  
160 - @TableField(value = "userDef4")  
161 - private String userDef4;  
162 -  
163 - /**  
164 - * 自定义字段5  
165 - */  
166 - @TableField(value = "userDef5")  
167 - private String userDef5;  
168 -  
169 - /**  
170 - * 自定义字段6  
171 - */  
172 - @TableField(value = "userDef6")  
173 - private String userDef6;  
174 -  
175 - /**  
176 - * 自定义字段7  
177 - */  
178 - @TableField(value = "userDef7")  
179 - private String userDef7;  
180 -  
181 - /**  
182 - * 自定义字段8  
183 - */  
184 - @TableField(value = "userDef8")  
185 - private String userDef8;  
186 -  
187 - /**  
188 * 库存详情 158 * 库存详情
189 */ 159 */
190 private InventoryDetail inventoryDetail; 160 private InventoryDetail inventoryDetail;
src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/domain/ShipmentContainerDetail.java
@@ -28,6 +28,20 @@ public class ShipmentContainerDetail implements Serializable { @@ -28,6 +28,20 @@ public class ShipmentContainerDetail implements Serializable {
28 private String containerCode; 28 private String containerCode;
29 29
30 /** 30 /**
  31 + * 库位
  32 + */
  33 + @TableField(value = "locationCode")
  34 + @ApiModelProperty(value="库位")
  35 + private String locationCode;
  36 +
  37 + /**
  38 + * 库存Id
  39 + */
  40 + @TableField(value = "inventoryId")
  41 + @ApiModelProperty(value="库存Id")
  42 + private String inventoryId;
  43 +
  44 + /**
31 * 出库箱头内部号 45 * 出库箱头内部号
32 */ 46 */
33 @TableField(value = "shippingContainerId") 47 @TableField(value = "shippingContainerId")
@@ -381,6 +395,10 @@ public class ShipmentContainerDetail implements Serializable { @@ -381,6 +395,10 @@ public class ShipmentContainerDetail implements Serializable {
381 395
382 public static final String COL_CONTAINERCODE = "containerCode"; 396 public static final String COL_CONTAINERCODE = "containerCode";
383 397
  398 + public static final String COL_LOCATIONCODE = "locationCode";
  399 +
  400 + public static final String COL_INVENTORYID= "inventoryId";
  401 +
384 public static final String COL_SHIPPINGCONTAINERID = "shippingContainerId"; 402 public static final String COL_SHIPPINGCONTAINERID = "shippingContainerId";
385 403
386 public static final String COL_SHIPMENTCODE = "shipmentCode"; 404 public static final String COL_SHIPMENTCODE = "shipmentCode";
@@ -517,6 +535,23 @@ public class ShipmentContainerDetail implements Serializable { @@ -517,6 +535,23 @@ public class ShipmentContainerDetail implements Serializable {
517 this.containerCode = containerCode; 535 this.containerCode = containerCode;
518 } 536 }
519 537
  538 +
  539 + public String getLocationCode() {
  540 + return locationCode;
  541 + }
  542 +
  543 + public void setLocationCode(String locationCode) {
  544 + this.locationCode = locationCode;
  545 + }
  546 +
  547 + public String getInventoryId() {
  548 + return inventoryId;
  549 + }
  550 +
  551 + public void setInventoryId(String inventoryId) {
  552 + this.inventoryId = inventoryId;
  553 + }
  554 +
520 /** 555 /**
521 * 获取出库箱头内部号 556 * 获取出库箱头内部号
522 * 557 *
src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/mapper/ShipmentContainerDetailMapper.java
@@ -2,6 +2,13 @@ package com.huaheng.pc.shipment.shipmentContainerDetail.mapper; @@ -2,6 +2,13 @@ package com.huaheng.pc.shipment.shipmentContainerDetail.mapper;
2 2
3 import com.baomidou.mybatisplus.core.mapper.BaseMapper; 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerDetail; 4 import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerDetail;
  5 +import org.apache.ibatis.annotations.Param;
  6 +
  7 +import java.util.List;
  8 +import java.util.Map;
5 9
6 public interface ShipmentContainerDetailMapper extends BaseMapper<ShipmentContainerDetail> { 10 public interface ShipmentContainerDetailMapper extends BaseMapper<ShipmentContainerDetail> {
  11 +
  12 + List<Map<String, Object>> selectListMapByEqual(@Param("columns") String columns, @Param("condition") ShipmentContainerDetail condition);
  13 +
7 } 14 }
8 \ No newline at end of file 15 \ No newline at end of file
src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/service/ShipmentContainerDetailService.java
@@ -2,7 +2,12 @@ package com.huaheng.pc.shipment.shipmentContainerDetail.service; @@ -2,7 +2,12 @@ package com.huaheng.pc.shipment.shipmentContainerDetail.service;
2 2
3 import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerDetail; 3 import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerDetail;
4 import com.baomidou.mybatisplus.extension.service.IService; 4 import com.baomidou.mybatisplus.extension.service.IService;
  5 +
  6 +import java.util.List;
  7 +import java.util.Map;
  8 +
5 public interface ShipmentContainerDetailService extends IService<ShipmentContainerDetail>{ 9 public interface ShipmentContainerDetailService extends IService<ShipmentContainerDetail>{
6 10
  11 + List<Map<String, Object>> selectListMapByEqual(String columnList, ShipmentContainerDetail condition);
7 12
8 } 13 }
src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/service/ShipmentContainerDetailServiceImpl.java
@@ -3,11 +3,19 @@ package com.huaheng.pc.shipment.shipmentContainerDetail.service; @@ -3,11 +3,19 @@ package com.huaheng.pc.shipment.shipmentContainerDetail.service;
3 import org.springframework.stereotype.Service; 3 import org.springframework.stereotype.Service;
4 import javax.annotation.Resource; 4 import javax.annotation.Resource;
5 import java.util.List; 5 import java.util.List;
  6 +import java.util.Map;
  7 +
6 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 8 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7 import com.huaheng.pc.shipment.shipmentContainerDetail.mapper.ShipmentContainerDetailMapper; 9 import com.huaheng.pc.shipment.shipmentContainerDetail.mapper.ShipmentContainerDetailMapper;
8 import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerDetail; 10 import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerDetail;
9 -import com.huaheng.pc.shipment.shipmentContainerDetail.service.ShipmentContainerDetailService;  
10 @Service 11 @Service
11 public class ShipmentContainerDetailServiceImpl extends ServiceImpl<ShipmentContainerDetailMapper, ShipmentContainerDetail> implements ShipmentContainerDetailService{ 12 public class ShipmentContainerDetailServiceImpl extends ServiceImpl<ShipmentContainerDetailMapper, ShipmentContainerDetail> implements ShipmentContainerDetailService{
12 13
  14 + @Resource
  15 + private ShipmentContainerDetailMapper shipmentContainerDetailMapper;
  16 +
  17 + @Override
  18 + public List<Map<String, Object>> selectListMapByEqual(String columns, ShipmentContainerDetail condition) {
  19 + return shipmentContainerDetailMapper.selectListMapByEqual(columns, condition);
  20 + }
13 } 21 }
src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/domain/ShipmentContainerHeader.java
@@ -27,6 +27,14 @@ public class ShipmentContainerHeader implements Serializable { @@ -27,6 +27,14 @@ public class ShipmentContainerHeader implements Serializable {
27 @ApiModelProperty(value="出库箱号") 27 @ApiModelProperty(value="出库箱号")
28 private String containerCode; 28 private String containerCode;
29 29
  30 +
  31 + /**
  32 + * 库位
  33 + */
  34 + @TableField(value = "locationCode")
  35 + @ApiModelProperty(value="库位")
  36 + private String locationCode;
  37 +
30 /** 38 /**
31 * 仓库 39 * 仓库
32 */ 40 */
@@ -44,9 +52,9 @@ public class ShipmentContainerHeader implements Serializable { @@ -44,9 +52,9 @@ public class ShipmentContainerHeader implements Serializable {
44 /** 52 /**
45 * 状态 53 * 状态
46 */ 54 */
47 - @TableField(value = "enable") 55 + @TableField(value = "status")
48 @ApiModelProperty(value="状态") 56 @ApiModelProperty(value="状态")
49 - private Integer enable; 57 + private Integer status;
50 58
51 /** 59 /**
52 * 父 60 * 父
@@ -386,6 +394,9 @@ public class ShipmentContainerHeader implements Serializable { @@ -386,6 +394,9 @@ public class ShipmentContainerHeader implements Serializable {
386 394
387 public static final String COL_CONTAINERCODE = "containerCode"; 395 public static final String COL_CONTAINERCODE = "containerCode";
388 396
  397 + public static final String COL_LOCATIONCODE = "locationCode";
  398 +
  399 +
389 public static final String COL_WAREHOUSECODE = "warehouseCode"; 400 public static final String COL_WAREHOUSECODE = "warehouseCode";
390 401
391 public static final String COL_CONTAINERTYPE = "containerType"; 402 public static final String COL_CONTAINERTYPE = "containerType";
@@ -526,6 +537,14 @@ public class ShipmentContainerHeader implements Serializable { @@ -526,6 +537,14 @@ public class ShipmentContainerHeader implements Serializable {
526 this.containerCode = containerCode; 537 this.containerCode = containerCode;
527 } 538 }
528 539
  540 + public String getLocationCode() {
  541 + return locationCode;
  542 + }
  543 +
  544 + public void setLocationCode(String locationCode) {
  545 + this.locationCode = locationCode;
  546 + }
  547 +
529 /** 548 /**
530 * 获取仓库 549 * 获取仓库
531 * 550 *
@@ -562,22 +581,12 @@ public class ShipmentContainerHeader implements Serializable { @@ -562,22 +581,12 @@ public class ShipmentContainerHeader implements Serializable {
562 this.containerType = containerType; 581 this.containerType = containerType;
563 } 582 }
564 583
565 - /**  
566 - * 获取状态  
567 - *  
568 - * @return enable - 状态  
569 - */  
570 - public Integer getEnable() {  
571 - return enable; 584 + public Integer getStatus() {
  585 + return status;
572 } 586 }
573 587
574 - /**  
575 - * 设置状态  
576 - *  
577 - * @param enable 状态  
578 - */  
579 - public void setEnable(Integer enable) {  
580 - this.enable = enable; 588 + public void setStatus(Integer status) {
  589 + this.status = status;
581 } 590 }
582 591
583 /** 592 /**
src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderService.java
1 package com.huaheng.pc.shipment.shipmentContainerHeader.service; 1 package com.huaheng.pc.shipment.shipmentContainerHeader.service;
2 2
3 import com.huaheng.framework.web.domain.AjaxResult; 3 import com.huaheng.framework.web.domain.AjaxResult;
  4 +import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerDetail;
4 import com.huaheng.pc.shipment.shipmentContainerHeader.domain.ShipmentCombinationModel; 5 import com.huaheng.pc.shipment.shipmentContainerHeader.domain.ShipmentCombinationModel;
5 import com.huaheng.pc.shipment.shipmentContainerHeader.domain.ShipmentContainerHeader; 6 import com.huaheng.pc.shipment.shipmentContainerHeader.domain.ShipmentContainerHeader;
6 import com.baomidou.mybatisplus.extension.service.IService; 7 import com.baomidou.mybatisplus.extension.service.IService;
7 import org.apache.ibatis.annotations.Param; 8 import org.apache.ibatis.annotations.Param;
8 9
  10 +import java.util.List;
9 import java.util.Map; 11 import java.util.Map;
10 12
11 public interface ShipmentContainerHeaderService extends IService<ShipmentContainerHeader>{ 13 public interface ShipmentContainerHeaderService extends IService<ShipmentContainerHeader>{
@@ -14,7 +16,14 @@ public interface ShipmentContainerHeaderService extends IService&lt;ShipmentContain @@ -14,7 +16,14 @@ public interface ShipmentContainerHeaderService extends IService&lt;ShipmentContain
14 16
15 17
16 //出库保存组盘 18 //出库保存组盘
17 - AjaxResult combination(ShipmentCombinationModel shipmentCombination); 19 + ShipmentContainerHeader combination(ShipmentCombinationModel shipmentCombination);
  20 +
  21 + //取消组盘
  22 + AjaxResult cancelCombinationDetail(List<Integer> detailIds) ;
  23 +
  24 + AjaxResult cancelCombinationDetailInner(List<ShipmentContainerDetail> shipmentContainerDetails) ;
  25 +
  26 + AjaxResult autoCombination(String shipmentCode);
18 27
19 28
20 } 29 }
src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java
@@ -18,10 +18,13 @@ import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; @@ -18,10 +18,13 @@ import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail;
18 import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailService; 18 import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailService;
19 import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; 19 import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader;
20 import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService; 20 import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService;
  21 +import com.huaheng.pc.shipment.shippingCombination.domain.ShippingSearch;
  22 +import com.huaheng.pc.shipment.shippingCombination.service.ShippingCombinationService;
21 import org.springframework.beans.factory.annotation.Autowired; 23 import org.springframework.beans.factory.annotation.Autowired;
22 import org.springframework.stereotype.Service; 24 import org.springframework.stereotype.Service;
23 import javax.annotation.Resource; 25 import javax.annotation.Resource;
24 import java.math.BigDecimal; 26 import java.math.BigDecimal;
  27 +import java.util.ArrayList;
25 import java.util.List; 28 import java.util.List;
26 import java.util.Map; 29 import java.util.Map;
27 30
@@ -48,6 +51,8 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont @@ -48,6 +51,8 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont
48 private ShipmentContainerDetailService shipmentContainerDetailService; 51 private ShipmentContainerDetailService shipmentContainerDetailService;
49 @Autowired 52 @Autowired
50 private MaterialService materialService; 53 private MaterialService materialService;
  54 + @Autowired
  55 + private ShippingCombinationService shippingCombinationService;
51 56
52 57
53 @Override 58 @Override
@@ -64,30 +69,30 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont @@ -64,30 +69,30 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont
64 */ 69 */
65 @Transactional 70 @Transactional
66 @Override 71 @Override
67 - public AjaxResult combination(ShipmentCombinationModel shipmentCombinationModel) { 72 + public ShipmentContainerHeader combination(ShipmentCombinationModel shipmentCombinationModel) {
68 73
69 //校验 74 //校验
70 if(shipmentCombinationModel.getShipQty().compareTo(new BigDecimal("0")) <= 0){ 75 if(shipmentCombinationModel.getShipQty().compareTo(new BigDecimal("0")) <= 0){
71 - return AjaxResult.error("出库数量必须大于0"); 76 + throw new ServiceException("出库数量必须大于0");
72 } 77 }
73 ShipmentDetail shipmentDetail = shipmentDetailService.getById(shipmentCombinationModel.getShipmentDetailId()); 78 ShipmentDetail shipmentDetail = shipmentDetailService.getById(shipmentCombinationModel.getShipmentDetailId());
74 if(shipmentDetail==null){ 79 if(shipmentDetail==null){
75 - return AjaxResult.error("出库明细未找到"); 80 + throw new ServiceException("出库明细未找到");
76 } 81 }
77 InventoryDetail inventoryDetail = inventoryDetailService.getById((shipmentCombinationModel.getInventoryDetailId())); 82 InventoryDetail inventoryDetail = inventoryDetailService.getById((shipmentCombinationModel.getInventoryDetailId()));
78 if(inventoryDetail==null){ 83 if(inventoryDetail==null){
79 - return AjaxResult.error("库存未找到"); 84 + throw new ServiceException("库存未找到");
80 } 85 }
81 //校验数量是否超出 86 //校验数量是否超出
82 if((shipmentDetail.getShipQty().subtract(shipmentDetail.getRequestQty())).compareTo(shipmentCombinationModel.getShipQty())<0){ 87 if((shipmentDetail.getShipQty().subtract(shipmentDetail.getRequestQty())).compareTo(shipmentCombinationModel.getShipQty())<0){
83 - return AjaxResult.error("录入数量超出明细待出数量"); 88 + throw new ServiceException("录入数量超出明细待出数量");
84 } 89 }
85 //校验库存可用数量 90 //校验库存可用数量
86 if(inventoryDetail.getQty().subtract(inventoryDetail.getTaskQty()).subtract(inventoryDetail.getLockedQty()).compareTo(shipmentCombinationModel.getShipQty())<0){ 91 if(inventoryDetail.getQty().subtract(inventoryDetail.getTaskQty()).subtract(inventoryDetail.getLockedQty()).compareTo(shipmentCombinationModel.getShipQty())<0){
87 - return AjaxResult.error("录入数量超出可出数量"); 92 + throw new ServiceException("录入数量超出可出数量");
88 } 93 }
89 if(!shipmentDetail.getMaterialCode().equals(inventoryDetail.getMaterialCode())){ 94 if(!shipmentDetail.getMaterialCode().equals(inventoryDetail.getMaterialCode())){
90 - return AjaxResult.error("配盘物料不一致"); 95 + throw new ServiceException("配盘物料不一致");
91 } 96 }
92 //库位 97 //库位
93 LambdaQueryWrapper<Location> lambdaQueryWrapper= Wrappers.lambdaQuery(); 98 LambdaQueryWrapper<Location> lambdaQueryWrapper= Wrappers.lambdaQuery();
@@ -95,7 +100,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont @@ -95,7 +100,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont
95 .eq(Location::getCode,inventoryDetail.getLocationCode()); 100 .eq(Location::getCode,inventoryDetail.getLocationCode());
96 Location location = locationService.getOne(lambdaQueryWrapper); 101 Location location = locationService.getOne(lambdaQueryWrapper);
97 if (location == null) 102 if (location == null)
98 - return AjaxResult.error("库位 "+ inventoryDetail.getLocationCode() +" 不存在"); 103 + throw new ServiceException("库位 "+ inventoryDetail.getLocationCode() +" 不存在");
99 if (location.getStatus().equals("lock")) { 104 if (location.getStatus().equals("lock")) {
100 //如果库位状态是锁定的话,就查找出库组盘表,如果存在未下发 105 //如果库位状态是锁定的话,就查找出库组盘表,如果存在未下发
101 LambdaQueryWrapper<ShipmentContainerHeader> lam=Wrappers.lambdaQuery(); 106 LambdaQueryWrapper<ShipmentContainerHeader> lam=Wrappers.lambdaQuery();
@@ -104,7 +109,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont @@ -104,7 +109,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont
104 .eq(ShipmentContainerHeader::getTaskCreated,0); 109 .eq(ShipmentContainerHeader::getTaskCreated,0);
105 ShipmentContainerHeader shipmentContainerHeader = this.getOne(lam); 110 ShipmentContainerHeader shipmentContainerHeader = this.getOne(lam);
106 if (shipmentContainerHeader == null) { 111 if (shipmentContainerHeader == null) {
107 - return AjaxResult.error("库位已经锁定不能使用"); 112 + throw new ServiceException("库位已经锁定不能使用");
108 } 113 }
109 } 114 }
110 115
@@ -141,7 +146,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont @@ -141,7 +146,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont
141 //更新单据状态 146 //更新单据状态
142 shipmentHeaderService.updateShipmentStatus(shipmentDetail.getShipmentId()); 147 shipmentHeaderService.updateShipmentStatus(shipmentDetail.getShipmentId());
143 148
144 - return AjaxResult.success("成功"); 149 + return shipmentContainerHeader;
145 } 150 }
146 151
147 /** 152 /**
@@ -157,7 +162,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont @@ -157,7 +162,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont
157 lambdaQueryWrapper.eq(ShipmentContainerHeader::getContainerCode,location.getContainerCode()) 162 lambdaQueryWrapper.eq(ShipmentContainerHeader::getContainerCode,location.getContainerCode())
158 .eq(ShipmentContainerHeader::getWarehouseCode,ShiroUtils.getWarehouseCode()) 163 .eq(ShipmentContainerHeader::getWarehouseCode,ShiroUtils.getWarehouseCode())
159 .eq(ShipmentContainerHeader::getTaskCreated,1) 164 .eq(ShipmentContainerHeader::getTaskCreated,1)
160 - .eq(ShipmentContainerHeader::getEnable,10); 165 + .eq(ShipmentContainerHeader::getStatus,10);
161 ShipmentContainerHeader shipmentContainerHeader = this.getOne(lambdaQueryWrapper); 166 ShipmentContainerHeader shipmentContainerHeader = this.getOne(lambdaQueryWrapper);
162 if(shipmentContainerHeader != null) { 167 if(shipmentContainerHeader != null) {
163 throw new ServiceException("容器"+location.getContainerCode()+"已经生成任务,不能再添加明细;操作中止;"); 168 throw new ServiceException("容器"+location.getContainerCode()+"已经生成任务,不能再添加明细;操作中止;");
@@ -167,7 +172,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont @@ -167,7 +172,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont
167 lam.eq(ShipmentContainerHeader::getContainerCode,location.getContainerCode()) 172 lam.eq(ShipmentContainerHeader::getContainerCode,location.getContainerCode())
168 .eq(ShipmentContainerHeader::getWarehouseCode,ShiroUtils.getWarehouseCode()) 173 .eq(ShipmentContainerHeader::getWarehouseCode,ShiroUtils.getWarehouseCode())
169 .eq(ShipmentContainerHeader::getTaskCreated,0) 174 .eq(ShipmentContainerHeader::getTaskCreated,0)
170 - .eq(ShipmentContainerHeader::getEnable,0); 175 + .eq(ShipmentContainerHeader::getStatus,0);
171 shipmentContainerHeader = this.getOne(lam); 176 shipmentContainerHeader = this.getOne(lam);
172 if (shipmentContainerHeader == null) { 177 if (shipmentContainerHeader == null) {
173 shipmentContainerHeader = new ShipmentContainerHeader(); 178 shipmentContainerHeader = new ShipmentContainerHeader();
@@ -175,7 +180,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont @@ -175,7 +180,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont
175 shipmentContainerHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); 180 shipmentContainerHeader.setWarehouseCode(ShiroUtils.getWarehouseCode());
176 //赋值u8仓库 181 //赋值u8仓库
177 shipmentContainerHeader.setCompanyCode(shipmentDetail.getCompanyCode()); 182 shipmentContainerHeader.setCompanyCode(shipmentDetail.getCompanyCode());
178 - shipmentContainerHeader.setEnable(0); 183 + shipmentContainerHeader.setStatus(0);
179 shipmentContainerHeader.setCreatedBy(ShiroUtils.getLoginName()); 184 shipmentContainerHeader.setCreatedBy(ShiroUtils.getLoginName());
180 shipmentContainerHeader.setCreated(null); 185 shipmentContainerHeader.setCreated(null);
181 // Material material=new Material(); 186 // Material material=new Material();
@@ -230,4 +235,132 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont @@ -230,4 +235,132 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont
230 return shipmentContainerDetail; 235 return shipmentContainerDetail;
231 } 236 }
232 237
  238 +
  239 + /**
  240 + * 取消组盘的一组明细
  241 + * @param detailIds
  242 + * @return
  243 + */
  244 + @Override
  245 + public AjaxResult cancelCombinationDetail(List<Integer> detailIds) {
  246 + List<ShipmentContainerDetail> shipmentContainerDetails = new ArrayList<>();
  247 + for(int detailId:detailIds){
  248 + ShipmentContainerDetail shipmentContainerDetail = shipmentContainerDetailService.getById(detailId);
  249 + shipmentContainerDetails.add(shipmentContainerDetail);
  250 + }
  251 + return cancelCombinationDetailInner(shipmentContainerDetails);
  252 + }
  253 +
  254 + /**
  255 + * 取消组盘的一组明细
  256 + * @param shipmentContainerDetails
  257 + * @return
  258 + */
  259 + @Override
  260 + @Transactional
  261 + public AjaxResult cancelCombinationDetailInner(List<ShipmentContainerDetail> shipmentContainerDetails) {
  262 + for(ShipmentContainerDetail shipmentContainerDetail:shipmentContainerDetails){
  263 + //获取头
  264 + ShipmentContainerHeader shipmentContainerHeader = this.getById(shipmentContainerDetail.getShippingContainerId());
  265 + if(shipmentContainerHeader.getStatus()>9){
  266 + return AjaxResult.error("容器"+shipmentContainerHeader.getContainerCode()+"非新建状态,不允许取消明细");
  267 + }
  268 + //恢复占用库存
  269 + InventoryDetail inventoryDetail = inventoryDetailService.getById(shipmentContainerDetail.getInventoryId());
  270 + inventoryDetail.setTaskQty(inventoryDetail.getTaskQty().subtract(shipmentContainerDetail.getQty()));
  271 + inventoryDetailService.saveOrUpdate(inventoryDetail);
  272 + //恢复单据发货数量
  273 + ShipmentDetail shipmentDetail = shipmentDetailService.getById(shipmentContainerDetail.getShipmentDetailId());
  274 + shipmentDetail.setRequestQty(shipmentDetail.getRequestQty().subtract(shipmentContainerDetail.getQty()));
  275 + if(shipmentDetail.getRequestQty().compareTo(BigDecimal.ZERO) != 0 ){
  276 + shipmentDetail.setStatus(200);//明细状态恢复,如果删除后还有以出数量就是波次
  277 + }else{
  278 + shipmentDetail.setStatus(0 );//明细状态
  279 + }
  280 + shipmentDetailService.saveOrUpdate(shipmentDetail);
  281 + //删除这个配盘明细
  282 + shipmentContainerDetailService.removeById(shipmentContainerDetail.getId());
  283 +
  284 + //查询头表下还有没有明细,如果没有,则删了这个头表
  285 + ShipmentContainerDetail condition = new ShipmentContainerDetail();
  286 + condition.setShippingContainerId(shipmentContainerDetail.getShippingContainerId());
  287 + List<Map<String, Object>> list= shipmentContainerDetailService.selectListMapByEqual("id", condition);
  288 + if(list==null||list.size() == 0){
  289 + this.removeById(shipmentContainerHeader.getId());
  290 + locationService.updateStatus(shipmentContainerHeader.getLocationCode(),"empty");
  291 + }
  292 + //更新单据状态
  293 + shipmentHeaderService.updateShipmentStatus(shipmentDetail.getShipmentId());
  294 + }
  295 + return AjaxResult.success("");
  296 + }
  297 +
  298 +
  299 + /**
  300 + * 出库自动组盘
  301 + * @param shipmentCode
  302 + * @return
  303 + */
  304 + @Override
  305 + @Transactional
  306 + public AjaxResult autoCombination(String shipmentCode) {
  307 + int num=0;
  308 + AjaxResult ajaxResult=new AjaxResult();
  309 +
  310 + LambdaQueryWrapper<ShipmentDetail> lambdaQueryWrapper=Wrappers.lambdaQuery();
  311 + lambdaQueryWrapper.eq(ShipmentDetail::getShipmentCode,shipmentCode)
  312 + .eq(ShipmentDetail::getWarehouseCode,ShiroUtils.getWarehouseCode());
  313 + List<ShipmentDetail> shipmentDetailList = shipmentDetailService.list(lambdaQueryWrapper);
  314 + if(shipmentDetailList.size()<1 || shipmentDetailList==null){
  315 + return AjaxResult.error("找不到子单链");
  316 + }
  317 + for (ShipmentDetail item : shipmentDetailList) {
  318 + //获取需要出库数量
  319 + BigDecimal shipmentQty = item.getShipQty().subtract(item.getRequestQty());
  320 + //判断是否还有需要出库的物料,如果没有就跳过该物料
  321 + if (shipmentQty.compareTo(BigDecimal.ZERO) <= 0) {
  322 + continue;
  323 + }
  324 + // 根据 仓库编码、货主编码、存货编码,物料状态,项目号来查找可以出库的物料
  325 + ShippingSearch search = new ShippingSearch();
  326 + search.setWarehouseCode(ShiroUtils.getWarehouseCode());
  327 + search.setCompanyCode(item.getCompanyCode());
  328 + search.setMaterialCode(item.getMaterialCode());
  329 + search.setInventorySts(item.getInventorySts()); //物料状态
  330 +
  331 + List<InventoryDetail> inventoryList = shippingCombinationService.getInventorys(search);
  332 + if (inventoryList.size() < 1) {
  333 + num = num + 1;
  334 + } else {
  335 + for (InventoryDetail inventory : inventoryList) {
  336 + //判断是否组盘完毕,完毕就退出内循环
  337 + if (shipmentQty.compareTo(BigDecimal.ZERO) <= 0) {
  338 + break;
  339 + }
  340 +
  341 + BigDecimal inventoryQty = inventory.getQty().subtract(inventory.getTaskQty());
  342 + ShipmentCombinationModel shipmentCombination = new ShipmentCombinationModel();
  343 + shipmentCombination.setInventoryDetailId(inventory.getId());
  344 + shipmentCombination.setShipmentDetailId(item.getId());
  345 + shipmentCombination.setType((short) 300);
  346 + List<Integer> list=new ArrayList<>();
  347 + //如果库存数 >= 待出库数,组盘数就是待出库数并且结束组盘,否则组盘数就是库存数
  348 + if (inventoryQty.compareTo(shipmentQty) > -1) {
  349 + shipmentCombination.setShipQty(shipmentQty);
  350 + ShipmentContainerHeader shipmentContainerHeader=this.combination(shipmentCombination);
  351 + } else {
  352 + shipmentCombination.setShipQty(inventoryQty);
  353 + ShipmentContainerHeader shipmentContainerHeader=this.combination(shipmentCombination);
  354 + list.add(shipmentContainerHeader.getId());
  355 + }
  356 + shipmentQty = shipmentQty.subtract(shipmentCombination.getShipQty());
  357 + }
  358 + }
  359 + }
  360 + if(num==shipmentDetailList.size()){
  361 + throw new ServiceException("单据物料在此库区没有库存,无法出库");
  362 + }
  363 + return AjaxResult.success("");
  364 + }
  365 +
233 } 366 }
src/main/java/com/huaheng/pc/shipment/shippingCombination/controller/ShippingCombinationController.java
@@ -13,6 +13,7 @@ import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; @@ -13,6 +13,7 @@ import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
13 import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; 13 import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService;
14 import com.huaheng.pc.shipment.shipmentContainerDetail.service.ShipmentContainerDetailService; 14 import com.huaheng.pc.shipment.shipmentContainerDetail.service.ShipmentContainerDetailService;
15 import com.huaheng.pc.shipment.shipmentContainerHeader.domain.ShipmentCombinationModel; 15 import com.huaheng.pc.shipment.shipmentContainerHeader.domain.ShipmentCombinationModel;
  16 +import com.huaheng.pc.shipment.shipmentContainerHeader.domain.ShipmentContainerHeader;
16 import com.huaheng.pc.shipment.shipmentContainerHeader.service.ShipmentContainerHeaderService; 17 import com.huaheng.pc.shipment.shipmentContainerHeader.service.ShipmentContainerHeaderService;
17 import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; 18 import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail;
18 import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailServiceImpl; 19 import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailServiceImpl;
@@ -122,36 +123,36 @@ public class ShippingCombinationController extends BaseController { @@ -122,36 +123,36 @@ public class ShippingCombinationController extends BaseController {
122 @PostMapping("/Addcombination") 123 @PostMapping("/Addcombination")
123 @ResponseBody 124 @ResponseBody
124 public AjaxResult Addcombination(ShipmentCombinationModel shipmentCombinationModel){ 125 public AjaxResult Addcombination(ShipmentCombinationModel shipmentCombinationModel){
125 - AjaxResult ajaxResult = shipmentContainerHeaderService.combination(shipmentCombinationModel);  
126 - return ajaxResult; 126 + ShipmentContainerHeader shipmentContainerHeader= shipmentContainerHeaderService.combination(shipmentCombinationModel);
  127 + return AjaxResult.success(shipmentContainerHeader.getId());
127 } 128 }
128 129
129 -// /**  
130 -// * 自动组盘  
131 -// * @param shipmentCode  
132 -// * @return  
133 -// */  
134 -// @RequiresPermissions("shipment:shippingCombination:combination")  
135 -// @PostMapping("/autoCombination")  
136 -// @ResponseBody  
137 -// public AjaxResult autoCombination(String shipmentCode){  
138 -// AjaxResult ajaxResult = shipmentContainerHeaderService.autoCombination(shipmentCode);  
139 -// return ajaxResult;  
140 -// }  
141 -  
142 -  
143 -  
144 -// /** 取消组盘  
145 -// *  
146 -// * @param shipmentContainerDetailIds  
147 -// * @return  
148 -// */  
149 -// @RequiresPermissions("shipment:shippingCombination:remove")  
150 -// @PostMapping("/cancelCombination")  
151 -// @ResponseBody  
152 -// public AjaxResult cancelCombination(@RequestBody List<Integer> shipmentContainerDetailIds){  
153 -// return shipmentContainerHeaderService.cancelCombinationDetail(shipmentContainerDetailIds);  
154 -// } 130 + /**
  131 + * 自动组盘
  132 + * @param shipmentCode
  133 + * @return
  134 + */
  135 + @RequiresPermissions("shipment:shippingCombination:combination")
  136 + @PostMapping("/autoCombination")
  137 + @ResponseBody
  138 + public AjaxResult autoCombination(String shipmentCode){
  139 + AjaxResult ajaxResult = shipmentContainerHeaderService.autoCombination(shipmentCode);
  140 + return ajaxResult;
  141 + }
  142 +
  143 +
  144 +
  145 + /** 取消组盘
  146 + *
  147 + * @param shipmentContainerDetailIds
  148 + * @return
  149 + */
  150 + @RequiresPermissions("shipment:shippingCombination:remove")
  151 + @PostMapping("/cancelCombination")
  152 + @ResponseBody
  153 + public AjaxResult cancelCombination(@RequestBody List<Integer> shipmentContainerDetailIds){
  154 + return shipmentContainerHeaderService.cancelCombinationDetail(shipmentContainerDetailIds);
  155 + }
155 156
156 157
157 } 158 }
src/main/java/com/huaheng/pc/shipment/shippingCombination/mapper/ShippingCombinationMapper.java
1 package com.huaheng.pc.shipment.shippingCombination.mapper; 1 package com.huaheng.pc.shipment.shippingCombination.mapper;
2 2
3 3
  4 +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
  5 +import com.huaheng.pc.shipment.shippingCombination.domain.ShippingSearch;
  6 +
  7 +import java.util.List;
  8 +
4 public interface ShippingCombinationMapper { 9 public interface ShippingCombinationMapper {
5 10
  11 + List<InventoryDetail> getInventorys(ShippingSearch search);
  12 +
6 } 13 }
src/main/java/com/huaheng/pc/shipment/shippingCombination/service/ShippingCombinationService.java
1 package com.huaheng.pc.shipment.shippingCombination.service; 1 package com.huaheng.pc.shipment.shippingCombination.service;
2 2
3 3
  4 +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
  5 +import com.huaheng.pc.shipment.shippingCombination.domain.ShippingSearch;
  6 +import com.huaheng.pc.shipment.shippingCombination.mapper.ShippingCombinationMapper;
4 import org.springframework.stereotype.Service; 7 import org.springframework.stereotype.Service;
5 8
  9 +import javax.annotation.Resource;
  10 +import java.util.List;
  11 +
6 12
7 @Service 13 @Service
8 public class ShippingCombinationService { 14 public class ShippingCombinationService {
9 15
  16 + @Resource
  17 + private ShippingCombinationMapper shippingCombinationMapper;
  18 +
  19 +
  20 + public List<InventoryDetail> getInventorys(ShippingSearch search) {
  21 + List<InventoryDetail> list = shippingCombinationMapper.getInventorys(search);
  22 + return list;
  23 + }
  24 +
10 } 25 }
src/main/resources/mybatis/general/LocationMapper.xml
@@ -38,4 +38,8 @@ @@ -38,4 +38,8 @@
38 version, userDef1, userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8, 38 version, userDef1, userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8,
39 systemCreated 39 systemCreated
40 </sql> 40 </sql>
  41 +
  42 + <update id="updateStatus">
  43 + UPDATE location set `status`=#{status} WHERE warehouseCode=#{warehouseCode} AND `code`=#{code}
  44 + </update>
41 </mapper> 45 </mapper>
42 \ No newline at end of file 46 \ No newline at end of file
src/main/resources/mybatis/shipment/ShipmentCombinationMapper.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3 +<mapper namespace="com.huaheng.pc.shipment.shippingCombination.mapper.ShippingCombinationMapper">
  4 + <resultMap id="BaseResultMap" type="com.huaheng.pc.shipment.shippingCombination.domain.ShippingSearch">
  5 + <!--@mbg.generated-->
  6 + <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode" />
  7 + <result column="companyCode" jdbcType="VARCHAR" property="companyCode" />
  8 + <result column="code" jdbcType="VARCHAR" property="code" />
  9 + <result column="materialCode" jdbcType="VARCHAR" property="materialCode" />
  10 + <result column="locationCode" jdbcType="VARCHAR" property="locationCode" />
  11 + <result column="containerCode" jdbcType="VARCHAR" property="containerCode" />
  12 + <result column="inventorySts" jdbcType="VARCHAR" property="inventorySts" />
  13 + <result column="project" jdbcType="VARCHAR" property="project" />
  14 + <result column="code" jdbcType="VARCHAR" property="code" />
  15 + </resultMap>
  16 + <sql id="Base_Column_List">
  17 + <!--@mbg.generated-->
  18 + warehouseCode, companyCode, code, materialCode, locationCode, `containerCode`, inventorySts,
  19 + project
  20 + </sql>
  21 +
  22 + <select id="getInventorys" resultType="com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail">
  23 + SELECT i.id, i.warehouseId, i.warehouseCode, i.locationId, i.locationCode, i.containerCode,
  24 + i.sourceCode, i.sourceLine, i.companyId, i.companyCode, i.materialId, i.materialCode,
  25 + i.receiptId, i.receiptCode, i.receiptDetailId, i.batch, i.lot, i.project, i.manufactureDate,
  26 + i.expirationDate, i.status, i.qty, i.taskQty, i.costPrice, i.listPrice, i.netPrice, i.created,
  27 + i.createdBy, i.lastUpdated, i.lastUpdatedBy, i.userDef1, i.userDef2, i.userDef3, i.deleted,
  28 + m.name materialName, m.userDef1 materialOldCode ,i.zoneCode
  29 + FROM inventory i
  30 + INNER JOIN material m ON i.materialCode = m.code
  31 + AND i.companyCode=#{companyCode}
  32 + AND i.warehouseCode=#{warehouseCode}
  33 + AND m.warehouseCode=#{warehouseCode}
  34 + AND i.qty > i.taskQty
  35 + AND i.materialCode=#{materialCode}
  36 +
  37 + INNER JOIN location l ON i.locationCode = l.code
  38 + AND l.warehouseCode=#{warehouseCode}
  39 + LEFT JOIN shipment_container_header s ON i.locationCode = s.locationCode
  40 + AND s.status=0
  41 + AND s.warehouseCode=#{warehouseCode}
  42 + <where>
  43 + <if test="project != null and project != ''">
  44 + AND i.project = #{project}
  45 + </if>
  46 + <if test="inventoryStatus != null and inventoryStatus != '' ">
  47 + AND i.status = #{inventoryStatus}
  48 + </if>
  49 + <if test="locationCode != null and locationCode != '' ">
  50 + AND i.locationCode = #{locationCode}
  51 + </if>
  52 + <if test="containerCode != null and containerCode != '' ">
  53 + AND i.containerCode = #{containerCode}
  54 + </if>
  55 + <if test="params != null and params.createdBegin != null and params.createdBegin != ''">
  56 + AND i.created &gt;= #{params.createdBegin}
  57 + </if>
  58 + <if test="params != null and params.createdEnd != null and params.createdEnd != ''">
  59 + AND i.created &lt;= #{params.createdEnd}
  60 + </if>
  61 + AND l.status='empty' OR (l.status='lock' AND s.id IS NOT NULL)
  62 + </where>
  63 + </select>
  64 +</mapper>
0 \ No newline at end of file 65 \ No newline at end of file
src/main/resources/mybatis/shipment/ShipmentContainerDetailMapper.xml
@@ -67,4 +67,47 @@ @@ -67,4 +67,47 @@
67 version, userDef1, userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8, 67 version, userDef1, userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8,
68 processStamp 68 processStamp
69 </sql> 69 </sql>
  70 +
  71 + <select id="selectListMapByEqual" resultType="java.util.HashMap">
  72 + SELECT ${columns} FROM shipment_container_detail
  73 + <where>
  74 + <if test="condition.id != null">
  75 + AND id = #{condition.id}
  76 + </if>
  77 + <if test="condition.headerId != null">
  78 + AND headerId = #{condition.headerId}
  79 + </if>
  80 + <if test="condition.shipmentCode != null">
  81 + AND shipmentCode = #{condition.shipmentCode}
  82 + </if>
  83 + <if test="condition.shipmentHeaderId != null">
  84 + AND shipmentHeaderId = #{condition.shipmentHeaderId}
  85 + </if>
  86 + <if test="condition.shipmentDetailId != null">
  87 + AND shipmentDetailId = #{condition.shipmentDetailId}
  88 + </if>
  89 + <if test="condition.materialCode != null">
  90 + AND materialCode = #{condition.materialCode}
  91 + </if>
  92 + <if test="condition.materialName != null">
  93 + AND materialName = #{condition.materialName}
  94 + </if>
  95 + <if test="condition.qty != null">
  96 + AND qty = #{condition.qty}
  97 + </if>
  98 + <if test="condition.inventoryId != null">
  99 + AND inventoryId = #{condition.inventoryId}
  100 + </if>
  101 + <if test="condition.created != null">
  102 + AND created = #{condition.created}
  103 + </if>
  104 + <if test="condition.createdBy != null">
  105 + AND createdBy = #{condition.createdBy}
  106 + </if>
  107 + <if test="condition.project != null">
  108 + AND project = #{condition.project}
  109 + </if>
  110 + </where>
  111 + </select>
  112 +
70 </mapper> 113 </mapper>
71 \ No newline at end of file 114 \ No newline at end of file
src/main/resources/mybatis/shipment/ShipmentContainerHeaderMapper.xml
@@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
7 <result column="containerCode" jdbcType="VARCHAR" property="containerCode" /> 7 <result column="containerCode" jdbcType="VARCHAR" property="containerCode" />
8 <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode" /> 8 <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode" />
9 <result column="containerType" jdbcType="VARCHAR" property="containerType" /> 9 <result column="containerType" jdbcType="VARCHAR" property="containerType" />
10 - <result column="enable" jdbcType="INTEGER" property="enable" /> 10 + <result column="enable" jdbcType="INTEGER" property="status" />
11 <result column="parent" jdbcType="INTEGER" property="parent" /> 11 <result column="parent" jdbcType="INTEGER" property="parent" />
12 <result column="totalWeight" jdbcType="DECIMAL" property="totalWeight" /> 12 <result column="totalWeight" jdbcType="DECIMAL" property="totalWeight" />
13 <result column="totalVolume" jdbcType="DECIMAL" property="totalVolume" /> 13 <result column="totalVolume" jdbcType="DECIMAL" property="totalVolume" />