diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 653c66a..88bcc99 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="ChangeListManager"> - <list default="true" id="9ff7b25e-dc1a-4859-8a0c-00039489e359" name="Default Changelist" comment="添加容器导入和导出导入模板"> + <list default="true" id="9ff7b25e-dc1a-4859-8a0c-00039489e359" name="Default Changelist" comment=""> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/general/container/controller/ContainerController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/general/container/controller/ContainerController.java" afterDir="false" /> - <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" /> - <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" /> + <change beforePath="$PROJECT_DIR$/sql/bug" beforeDir="false" /> + <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" /> + <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" /> </list> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="SHOW_DIALOG" value="false" /> @@ -43,6 +43,64 @@ </expand> <select /> </component> + <component name="FileEditorManager"> + <leaf> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="-304"> + <caret line="25" column="13" selection-start-line="25" selection-start-column="13" selection-end-line="25" selection-end-column="13" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/domain/ShipmentCombinationModel.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="68"> + <caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="202"> + <caret line="76" column="16" lean-forward="true" selection-start-line="76" selection-start-column="16" selection-end-line="76" selection-end-column="16" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/domain/InventoryDetail.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="1156"> + <caret line="81" column="11" lean-forward="true" selection-start-line="81" selection-start-column="11" selection-end-line="81" selection-end-column="11" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/domain/InventoryHeader.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="60"> + <caret line="155" selection-start-line="155" selection-end-line="155" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="200"> + <caret line="30" column="13" selection-start-line="30" selection-start-column="13" selection-end-line="30" selection-end-column="13" /> + </state> + </provider> + </entry> + </file> + </leaf> + </component> <component name="FileTemplateManagerImpl"> <option name="RECENT_TEMPLATES"> <list> @@ -61,6 +119,14 @@ </map> </option> </component> + <component name="IdeDocumentHistory"> + <option name="CHANGED_PATHS"> + <list> + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/domain/InventoryHeader.java" /> + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/domain/InventoryDetail.java" /> + </list> + </option> + </component> <component name="IgnoredFileRootStore"> <option name="generatedRoots"> <set> @@ -68,10 +134,217 @@ </set> </option> </component> + <component name="ProjectFrameBounds" extendedState="6"> + <option name="x" value="-10" /> + <option name="y" value="-10" /> + <option name="width" value="1940" /> + <option name="height" value="1050" /> + </component> <component name="ProjectId" id="1P5Ngjh73HToCarlEZkqMxrL7pm" /> <component name="ProjectLevelVcsManager"> <ConfirmationsSetting value="2" id="Add" /> </component> + <component name="ProjectView"> + <navigator proportions="" version="1"> + <foldersAlwaysOnTop value="true" /> + </navigator> + <panes> + <pane id="PackagesPane" /> + <pane id="ProjectPane"> + <subPane> + <expand> + <path> + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> + <item name="wms2" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> + <item name="wms2" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> + <item name="wms2" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> + <item name="wms2" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + <item name="java" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> + <item name="wms2" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + <item name="java" type="462c0819:PsiDirectoryNode" /> + <item name="com" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> + <item name="wms2" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + <item name="java" type="462c0819:PsiDirectoryNode" /> + <item name="com" type="462c0819:PsiDirectoryNode" /> + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> + <item name="wms2" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + <item name="java" type="462c0819:PsiDirectoryNode" /> + <item name="com" type="462c0819:PsiDirectoryNode" /> + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> + <item name="pc" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> + <item name="wms2" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + <item name="java" type="462c0819:PsiDirectoryNode" /> + <item name="com" type="462c0819:PsiDirectoryNode" /> + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> + <item name="pc" type="462c0819:PsiDirectoryNode" /> + <item name="inventory" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> + <item name="wms2" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + <item name="java" type="462c0819:PsiDirectoryNode" /> + <item name="com" type="462c0819:PsiDirectoryNode" /> + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> + <item name="pc" type="462c0819:PsiDirectoryNode" /> + <item name="inventory" type="462c0819:PsiDirectoryNode" /> + <item name="inventoryDetail" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> + <item name="wms2" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + <item name="java" type="462c0819:PsiDirectoryNode" /> + <item name="com" type="462c0819:PsiDirectoryNode" /> + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> + <item name="pc" type="462c0819:PsiDirectoryNode" /> + <item name="inventory" type="462c0819:PsiDirectoryNode" /> + <item name="inventoryDetail" type="462c0819:PsiDirectoryNode" /> + <item name="domain" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> + <item name="wms2" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + <item name="java" type="462c0819:PsiDirectoryNode" /> + <item name="com" type="462c0819:PsiDirectoryNode" /> + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> + <item name="pc" type="462c0819:PsiDirectoryNode" /> + <item name="inventory" type="462c0819:PsiDirectoryNode" /> + <item name="inventoryHeader" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> + <item name="wms2" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + <item name="java" type="462c0819:PsiDirectoryNode" /> + <item name="com" type="462c0819:PsiDirectoryNode" /> + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> + <item name="pc" type="462c0819:PsiDirectoryNode" /> + <item name="inventory" type="462c0819:PsiDirectoryNode" /> + <item name="inventoryHeader" type="462c0819:PsiDirectoryNode" /> + <item name="controller" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> + <item name="wms2" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + <item name="java" type="462c0819:PsiDirectoryNode" /> + <item name="com" type="462c0819:PsiDirectoryNode" /> + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> + <item name="pc" type="462c0819:PsiDirectoryNode" /> + <item name="inventory" type="462c0819:PsiDirectoryNode" /> + <item name="inventoryHeader" type="462c0819:PsiDirectoryNode" /> + <item name="domain" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> + <item name="wms2" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + <item name="java" type="462c0819:PsiDirectoryNode" /> + <item name="com" type="462c0819:PsiDirectoryNode" /> + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> + <item name="pc" type="462c0819:PsiDirectoryNode" /> + <item name="shipment" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> + <item name="wms2" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + <item name="java" type="462c0819:PsiDirectoryNode" /> + <item name="com" type="462c0819:PsiDirectoryNode" /> + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> + <item name="pc" type="462c0819:PsiDirectoryNode" /> + <item name="shipment" type="462c0819:PsiDirectoryNode" /> + <item name="shipmentContainerHeader" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> + <item name="wms2" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + <item name="java" type="462c0819:PsiDirectoryNode" /> + <item name="com" type="462c0819:PsiDirectoryNode" /> + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> + <item name="pc" type="462c0819:PsiDirectoryNode" /> + <item name="shipment" type="462c0819:PsiDirectoryNode" /> + <item name="shipmentContainerHeader" type="462c0819:PsiDirectoryNode" /> + <item name="domain" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> + <item name="wms2" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + <item name="java" type="462c0819:PsiDirectoryNode" /> + <item name="com" type="462c0819:PsiDirectoryNode" /> + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> + <item name="pc" type="462c0819:PsiDirectoryNode" /> + <item name="shipment" type="462c0819:PsiDirectoryNode" /> + <item name="shipmentContainerHeader" type="462c0819:PsiDirectoryNode" /> + <item name="mapper" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> + <item name="wms2" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + <item name="java" type="462c0819:PsiDirectoryNode" /> + <item name="com" type="462c0819:PsiDirectoryNode" /> + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> + <item name="pc" type="462c0819:PsiDirectoryNode" /> + <item name="shipment" type="462c0819:PsiDirectoryNode" /> + <item name="shipmentContainerHeader" type="462c0819:PsiDirectoryNode" /> + <item name="service" type="462c0819:PsiDirectoryNode" /> + </path> + </expand> + <select /> + </subPane> + </pane> + <pane id="Scope" /> + </panes> + </component> <component name="PropertiesComponent"> <property name="ASKED_ADD_EXTERNAL_FILES" value="true" /> <property name="DatabaseDriversLRU" value="mysql" /> @@ -130,7 +403,7 @@ </component> <component name="RunManager"> <configuration name="HuaHengApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot"> - <module name="huaheng" /> + <module name="wms2" /> <option name="SPRING_BOOT_MAIN_CLASS" value="com.huaheng.HuaHengApplication" /> <option name="ALTERNATIVE_JRE_PATH" /> <option name="UPDATE_ACTION_UPDATE_POLICY" value="UpdateClassesAndResources" /> @@ -153,7 +426,16 @@ <serviceView> <option name="contentProportion" value="0.18875067" /> <treeState> - <expand /> + <expand> + <path> + <item name="services root" type="e789fda9:ObjectUtils$Sentinel" /> + <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@5ef312b7" type="7427dc5b:ServiceModel$ServiceGroupNode" /> + </path> + <path> + <item name="services root" type="e789fda9:ObjectUtils$Sentinel" /> + <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@28150ae" type="7427dc5b:ServiceModel$ServiceGroupNode" /> + </path> + </expand> <select /> </treeState> </serviceView> @@ -191,9 +473,7 @@ <workItem from="1565829438280" duration="3502000" /> <workItem from="1565832950552" duration="86000" /> <workItem from="1565833039573" duration="288000" /> - <workItem from="1565833342181" duration="20223000" /> - <workItem from="1565916336398" duration="4223000" /> - <workItem from="1565923508645" duration="4968000" /> + <workItem from="1565833342181" duration="13946000" /> </task> <task id="LOCAL-00001" summary="添加库位、库位类型增删改查接口"> <created>1565226427512</created> @@ -286,30 +566,45 @@ <option name="project" value="LOCAL" /> <updated>1565833218584</updated> </task> - <task id="LOCAL-00014" summary="添加承运商页面,入库单类型"> - <created>1565856453372</created> - <option name="number" value="00014" /> - <option name="presentableId" value="LOCAL-00014" /> - <option name="project" value="LOCAL" /> - <updated>1565856453372</updated> - </task> - <task id="LOCAL-00015" summary="添加导入模板列表"> - <created>1565861068194</created> - <option name="number" value="00015" /> - <option name="presentableId" value="LOCAL-00015" /> - <option name="project" value="LOCAL" /> - <updated>1565861068194</updated> - </task> - <task id="LOCAL-00016" summary="添加容器导入和导出导入模板"> - <created>1565863093904</created> - <option name="number" value="00016" /> - <option name="presentableId" value="LOCAL-00016" /> - <option name="project" value="LOCAL" /> - <updated>1565863093904</updated> - </task> - <option name="localTasksCounter" value="17" /> + <option name="localTasksCounter" value="14" /> <servers /> </component> + <component name="ToolWindowManager"> + <frame x="-7" y="-7" width="1550" height="838" extended-state="6" /> + <editor active="true" /> + <layout> + <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.2627346" /> + <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> + <window_info id="Web" order="2" side_tool="true" /> + <window_info id="Designer" order="3" /> + <window_info id="UI Designer" order="4" /> + <window_info id="Favorites" order="5" side_tool="true" /> + <window_info anchor="bottom" id="Messages" visible="true" weight="0.06798867" /> + <window_info anchor="bottom" id="MyBatis Log" /> + <window_info anchor="bottom" id="Message" order="0" /> + <window_info anchor="bottom" id="Find" order="1" /> + <window_info anchor="bottom" id="Run" order="2" /> + <window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> + <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> + <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> + <window_info anchor="bottom" id="TODO" order="6" /> + <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" /> + <window_info anchor="bottom" id="Version Control" order="8" /> + <window_info anchor="bottom" id="Run Dashboard" order="9" /> + <window_info anchor="bottom" id="Spring" order="10" /> + <window_info anchor="bottom" id="Database Changes" order="11" /> + <window_info anchor="bottom" id="Event Log" order="12" side_tool="true" /> + <window_info anchor="bottom" id="Java Enterprise" order="13" /> + <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> + <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> + <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> + <window_info anchor="right" id="Palette" order="3" /> + <window_info anchor="right" id="Maven" order="4" /> + <window_info anchor="right" id="Bean Validation" order="5" /> + <window_info anchor="right" id="Database" order="6" /> + <window_info anchor="right" id="Palette	" order="7" /> + </layout> + </component> <component name="TypeScriptGeneratedFilesManager"> <option name="version" value="1" /> </component> @@ -319,6 +614,12 @@ <entry key="MAIN"> <value> <State> + <option name="RECENTLY_FILTERED_USER_GROUPS"> + <collection /> + </option> + <option name="RECENTLY_FILTERED_BRANCH_GROUPS"> + <collection /> + </option> <option name="COLUMN_ORDER" /> </State> </value> @@ -354,10 +655,7 @@ <MESSAGE value="添加商品、商品详情页面" /> <MESSAGE value="添加承运商" /> <MESSAGE value="添加物料导入、导出模板,添加Excel导入导出配置文件" /> - <MESSAGE value="添加承运商页面,入库单类型" /> - <MESSAGE value="添加导入模板列表" /> - <MESSAGE value="添加容器导入和导出导入模板" /> - <option name="LAST_COMMIT_MESSAGE" value="添加容器导入和导出导入模板" /> + <option name="LAST_COMMIT_MESSAGE" value="添加物料导入、导出模板,添加Excel导入导出配置文件" /> </component> <component name="XDebuggerManager"> <breakpoint-manager> @@ -365,27 +663,79 @@ <line-breakpoint enabled="true" type="java-line"> <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/general/material/controller/MaterialController.java</url> <line>198</line> + <properties /> <option name="timeStamp" value="11" /> </line-breakpoint> <line-breakpoint enabled="true" type="java-line"> <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/common/utils/poi/ExcelUtil.java</url> <line>302</line> + <properties /> <option name="timeStamp" value="12" /> </line-breakpoint> <line-breakpoint enabled="true" type="java-line"> <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/general/material/controller/MaterialController.java</url> <line>187</line> + <properties /> <option name="timeStamp" value="16" /> </line-breakpoint> <line-breakpoint enabled="true" type="java-line"> <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/general/material/service/MaterialServiceImpl.java</url> <line>66</line> + <properties /> <option name="timeStamp" value="24" /> </line-breakpoint> </breakpoints> </breakpoint-manager> </component> - <component name="com.intellij.coverage.CoverageDataManagerImpl"> - <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" /> + <component name="editorHistoryManager"> + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/domain/InventoryHeader.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="60"> + <caret line="155" selection-start-line="155" selection-end-line="155" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="200"> + <caret line="30" column="13" selection-start-line="30" selection-start-column="13" selection-end-line="30" selection-end-column="13" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="-304"> + <caret line="25" column="13" selection-start-line="25" selection-start-column="13" selection-end-line="25" selection-end-column="13" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/domain/ShipmentContainerHeader.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="-356"> + <caret line="118" column="16" selection-start-line="118" selection-start-column="16" selection-end-line="118" selection-end-column="16" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/domain/ShipmentCombinationModel.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="68"> + <caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="202"> + <caret line="76" column="16" lean-forward="true" selection-start-line="76" selection-start-column="16" selection-end-line="76" selection-end-column="16" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/domain/InventoryDetail.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="1156"> + <caret line="81" column="11" lean-forward="true" selection-start-line="81" selection-start-column="11" selection-end-line="81" selection-end-column="11" /> + </state> + </provider> + </entry> </component> </project> \ No newline at end of file diff --git a/sql/bug b/sql/bug deleted file mode 100644 index 384ee9a..0000000 --- a/sql/bug +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/src/main/java/com/huaheng/pc/general/location/mapper/LocationMapper.java b/src/main/java/com/huaheng/pc/general/location/mapper/LocationMapper.java index ab00edb..2066343 100644 --- a/src/main/java/com/huaheng/pc/general/location/mapper/LocationMapper.java +++ b/src/main/java/com/huaheng/pc/general/location/mapper/LocationMapper.java @@ -2,6 +2,10 @@ package com.huaheng.pc.general.location.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.huaheng.pc.general.location.domain.Location; +import org.apache.ibatis.annotations.Param; public interface LocationMapper extends BaseMapper<Location> { + + void updateStatus(@Param("warehouseCode") String warehouseCode, @Param("code") String code, @Param("status") String status); + } \ No newline at end of file diff --git a/src/main/java/com/huaheng/pc/general/location/service/LocationService.java b/src/main/java/com/huaheng/pc/general/location/service/LocationService.java index cb365f1..9ef63a8 100644 --- a/src/main/java/com/huaheng/pc/general/location/service/LocationService.java +++ b/src/main/java/com/huaheng/pc/general/location/service/LocationService.java @@ -6,4 +6,6 @@ public interface LocationService extends IService<Location>{ boolean insertLocation(Location location); + void updateStatus(String locationCode, String status); + } diff --git a/src/main/java/com/huaheng/pc/general/location/service/LocationServiceImpl.java b/src/main/java/com/huaheng/pc/general/location/service/LocationServiceImpl.java index 321a506..a7b82c0 100644 --- a/src/main/java/com/huaheng/pc/general/location/service/LocationServiceImpl.java +++ b/src/main/java/com/huaheng/pc/general/location/service/LocationServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.huaheng.common.exception.service.ServiceException; +import com.huaheng.common.utils.StringUtils; import com.huaheng.common.utils.security.ShiroUtils; import com.huaheng.pc.config.locationType.domain.LocationType; import com.huaheng.pc.config.locationType.service.LocationTypeService; @@ -29,6 +30,8 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i private LocationTypeService locationTypeService; @Resource private ZoneService zoneService; + @Resource + private LocationMapper locationMapper; @Override public boolean insertLocation(Location location) { @@ -94,4 +97,11 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i Boolean result = locationService.saveBatch(locations); return result; } + + @Override + public void updateStatus(String locationCode, String status) { + if (StringUtils.isNotEmpty(locationCode)) { + locationMapper.updateStatus(ShiroUtils.getWarehouseCode(), locationCode, status); + } + } } diff --git a/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java b/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java index 0eae342..8430340 100644 --- a/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java +++ b/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java @@ -22,10 +22,10 @@ import javax.annotation.Resource; * */ @Controller -@RequestMapping("/inventory/inventoryHeader") +@RequestMapping("/inventory/inventoryDetail") public class InventoryDetailController extends BaseController { - private String prefix = "inventoryHeader/inventoryHeader"; + private String prefix = "inventoryHeader/inventoryDetail"; @Resource private MaterialServiceImpl materialService; @@ -34,17 +34,17 @@ public class InventoryDetailController extends BaseController - @RequiresPermissions("inventoryHeader:inventoryHeader:view") + @RequiresPermissions("inventoryDetail:inventoryDetail:view") @GetMapping() public String inventory() { - return prefix + "/inventoryHeader"; + return prefix + "/inventoryDetail"; } /** * 查询库存列表 */ - @RequiresPermissions("inventoryHeader:inventoryHeader:list") + @RequiresPermissions("inventoryDetail:inventoryDetail:list") @Log(title = "库存-库存查看",operating = "查看库存列表", action = BusinessType.GRANT) @PostMapping("/inventoryLook") @ResponseBody @@ -60,7 +60,7 @@ public class InventoryDetailController extends BaseController } /**移库*/ - @RequiresPermissions("inventoryHeader:inventoryHeader:transfer") + @RequiresPermissions("inventoryDetail:inventoryDetail:transfer") @PostMapping("/transfer") @ResponseBody public AjaxResult transfer(String sourceLocation, String destinationLocation, Integer companyId, String companyCode){ @@ -69,7 +69,7 @@ public class InventoryDetailController extends BaseController } /**出库查看*/ - @RequiresPermissions("inventoryHeader:inventoryHeader:seeOut") + @RequiresPermissions("inventoryDetail:inventoryDetail:seeOut") @PostMapping("/createCheckOutTask") @ResponseBody public AjaxResult createCheckOutTask(String ids){ diff --git a/src/main/java/com/huaheng/pc/inventory/inventoryDetail/domain/InventoryDetail.java b/src/main/java/com/huaheng/pc/inventory/inventoryDetail/domain/InventoryDetail.java index 34a09e5..725997e 100644 --- a/src/main/java/com/huaheng/pc/inventory/inventoryDetail/domain/InventoryDetail.java +++ b/src/main/java/com/huaheng/pc/inventory/inventoryDetail/domain/InventoryDetail.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; import lombok.Data; @@ -75,19 +76,19 @@ public class InventoryDetail implements Serializable { * 在库数量 */ @TableField(value = "qty") - private Integer qty; + private BigDecimal qty; /** * 任务数量 */ @TableField(value = "taskQty") - private Integer taskQty; + private BigDecimal taskQty; /** * 冻结数量 */ @TableField(value = "lockedQty") - private Integer lockedQty; + private BigDecimal lockedQty; /** * 库存状态 diff --git a/src/main/java/com/huaheng/pc/inventory/inventoryHeader/domain/InventoryHeader.java b/src/main/java/com/huaheng/pc/inventory/inventoryHeader/domain/InventoryHeader.java index 4b4d826..f8a0559 100644 --- a/src/main/java/com/huaheng/pc/inventory/inventoryHeader/domain/InventoryHeader.java +++ b/src/main/java/com/huaheng/pc/inventory/inventoryHeader/domain/InventoryHeader.java @@ -71,7 +71,7 @@ public class InventoryHeader implements Serializable { private Integer totalQty; /** - * 总数量 + * 总行数 */ @TableField(value = "totalLines") private Integer totalLines; @@ -155,36 +155,6 @@ public class InventoryHeader implements Serializable { private String userDef3; /** - * 自定义字段4 - */ - @TableField(value = "userDef4") - private String userDef4; - - /** - * 自定义字段5 - */ - @TableField(value = "userDef5") - private String userDef5; - - /** - * 自定义字段6 - */ - @TableField(value = "userDef6") - private String userDef6; - - /** - * 自定义字段7 - */ - @TableField(value = "userDef7") - private String userDef7; - - /** - * 自定义字段8 - */ - @TableField(value = "userDef8") - private String userDef8; - - /** * 库存详情 */ private InventoryDetail inventoryDetail; diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/domain/ShipmentContainerDetail.java b/src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/domain/ShipmentContainerDetail.java index 614f6cb..9660f1c 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/domain/ShipmentContainerDetail.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/domain/ShipmentContainerDetail.java @@ -28,6 +28,20 @@ public class ShipmentContainerDetail implements Serializable { private String containerCode; /** + * 库位 + */ + @TableField(value = "locationCode") + @ApiModelProperty(value="库位") + private String locationCode; + + /** + * 库存Id + */ + @TableField(value = "inventoryId") + @ApiModelProperty(value="库存Id") + private String inventoryId; + + /** * 出库箱头内部号 */ @TableField(value = "shippingContainerId") @@ -381,6 +395,10 @@ public class ShipmentContainerDetail implements Serializable { public static final String COL_CONTAINERCODE = "containerCode"; + public static final String COL_LOCATIONCODE = "locationCode"; + + public static final String COL_INVENTORYID= "inventoryId"; + public static final String COL_SHIPPINGCONTAINERID = "shippingContainerId"; public static final String COL_SHIPMENTCODE = "shipmentCode"; @@ -517,6 +535,23 @@ public class ShipmentContainerDetail implements Serializable { this.containerCode = containerCode; } + + public String getLocationCode() { + return locationCode; + } + + public void setLocationCode(String locationCode) { + this.locationCode = locationCode; + } + + public String getInventoryId() { + return inventoryId; + } + + public void setInventoryId(String inventoryId) { + this.inventoryId = inventoryId; + } + /** * 获取出库箱头内部号 * diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/mapper/ShipmentContainerDetailMapper.java b/src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/mapper/ShipmentContainerDetailMapper.java index 655d0e7..2bb41ef 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/mapper/ShipmentContainerDetailMapper.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/mapper/ShipmentContainerDetailMapper.java @@ -2,6 +2,13 @@ package com.huaheng.pc.shipment.shipmentContainerDetail.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerDetail; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; public interface ShipmentContainerDetailMapper extends BaseMapper<ShipmentContainerDetail> { + + List<Map<String, Object>> selectListMapByEqual(@Param("columns") String columns, @Param("condition") ShipmentContainerDetail condition); + } \ No newline at end of file diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/service/ShipmentContainerDetailService.java b/src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/service/ShipmentContainerDetailService.java index 0b66ec5..22cc44c 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/service/ShipmentContainerDetailService.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/service/ShipmentContainerDetailService.java @@ -2,7 +2,12 @@ package com.huaheng.pc.shipment.shipmentContainerDetail.service; import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerDetail; import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; +import java.util.Map; + public interface ShipmentContainerDetailService extends IService<ShipmentContainerDetail>{ + List<Map<String, Object>> selectListMapByEqual(String columnList, ShipmentContainerDetail condition); } diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/service/ShipmentContainerDetailServiceImpl.java b/src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/service/ShipmentContainerDetailServiceImpl.java index 1bc9974..99f953f 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/service/ShipmentContainerDetailServiceImpl.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/service/ShipmentContainerDetailServiceImpl.java @@ -3,11 +3,19 @@ package com.huaheng.pc.shipment.shipmentContainerDetail.service; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; +import java.util.Map; + import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.huaheng.pc.shipment.shipmentContainerDetail.mapper.ShipmentContainerDetailMapper; import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerDetail; -import com.huaheng.pc.shipment.shipmentContainerDetail.service.ShipmentContainerDetailService; @Service public class ShipmentContainerDetailServiceImpl extends ServiceImpl<ShipmentContainerDetailMapper, ShipmentContainerDetail> implements ShipmentContainerDetailService{ + @Resource + private ShipmentContainerDetailMapper shipmentContainerDetailMapper; + + @Override + public List<Map<String, Object>> selectListMapByEqual(String columns, ShipmentContainerDetail condition) { + return shipmentContainerDetailMapper.selectListMapByEqual(columns, condition); + } } diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/domain/ShipmentContainerHeader.java b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/domain/ShipmentContainerHeader.java index 1f4b887..0d974cd 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/domain/ShipmentContainerHeader.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/domain/ShipmentContainerHeader.java @@ -27,6 +27,14 @@ public class ShipmentContainerHeader implements Serializable { @ApiModelProperty(value="出库箱号") private String containerCode; + + /** + * 库位 + */ + @TableField(value = "locationCode") + @ApiModelProperty(value="库位") + private String locationCode; + /** * 仓库 */ @@ -44,9 +52,9 @@ public class ShipmentContainerHeader implements Serializable { /** * 状态 */ - @TableField(value = "enable") + @TableField(value = "status") @ApiModelProperty(value="状态") - private Integer enable; + private Integer status; /** * 父 @@ -386,6 +394,9 @@ public class ShipmentContainerHeader implements Serializable { public static final String COL_CONTAINERCODE = "containerCode"; + public static final String COL_LOCATIONCODE = "locationCode"; + + public static final String COL_WAREHOUSECODE = "warehouseCode"; public static final String COL_CONTAINERTYPE = "containerType"; @@ -526,6 +537,14 @@ public class ShipmentContainerHeader implements Serializable { this.containerCode = containerCode; } + public String getLocationCode() { + return locationCode; + } + + public void setLocationCode(String locationCode) { + this.locationCode = locationCode; + } + /** * 获取仓库 * @@ -562,22 +581,12 @@ public class ShipmentContainerHeader implements Serializable { this.containerType = containerType; } - /** - * 获取状态 - * - * @return enable - 状态 - */ - public Integer getEnable() { - return enable; + public Integer getStatus() { + return status; } - /** - * 设置状态 - * - * @param enable 状态 - */ - public void setEnable(Integer enable) { - this.enable = enable; + public void setStatus(Integer status) { + this.status = status; } /** diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderService.java b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderService.java index 7b29fa2..4f329c2 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderService.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderService.java @@ -1,11 +1,13 @@ package com.huaheng.pc.shipment.shipmentContainerHeader.service; import com.huaheng.framework.web.domain.AjaxResult; +import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerDetail; import com.huaheng.pc.shipment.shipmentContainerHeader.domain.ShipmentCombinationModel; import com.huaheng.pc.shipment.shipmentContainerHeader.domain.ShipmentContainerHeader; import com.baomidou.mybatisplus.extension.service.IService; import org.apache.ibatis.annotations.Param; +import java.util.List; import java.util.Map; public interface ShipmentContainerHeaderService extends IService<ShipmentContainerHeader>{ @@ -14,7 +16,14 @@ public interface ShipmentContainerHeaderService extends IService<ShipmentContain //出库保存组盘 - AjaxResult combination(ShipmentCombinationModel shipmentCombination); + ShipmentContainerHeader combination(ShipmentCombinationModel shipmentCombination); + + //取消组盘 + AjaxResult cancelCombinationDetail(List<Integer> detailIds) ; + + AjaxResult cancelCombinationDetailInner(List<ShipmentContainerDetail> shipmentContainerDetails) ; + + AjaxResult autoCombination(String shipmentCode); } diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java index 124501d..55e1666 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java @@ -18,10 +18,13 @@ import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailService; import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService; +import com.huaheng.pc.shipment.shippingCombination.domain.ShippingSearch; +import com.huaheng.pc.shipment.shippingCombination.service.ShippingCombinationService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -48,6 +51,8 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont private ShipmentContainerDetailService shipmentContainerDetailService; @Autowired private MaterialService materialService; + @Autowired + private ShippingCombinationService shippingCombinationService; @Override @@ -64,30 +69,30 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont */ @Transactional @Override - public AjaxResult combination(ShipmentCombinationModel shipmentCombinationModel) { + public ShipmentContainerHeader combination(ShipmentCombinationModel shipmentCombinationModel) { //校验 if(shipmentCombinationModel.getShipQty().compareTo(new BigDecimal("0")) <= 0){ - return AjaxResult.error("出库数量必须大于0"); + throw new ServiceException("出库数量必须大于0"); } ShipmentDetail shipmentDetail = shipmentDetailService.getById(shipmentCombinationModel.getShipmentDetailId()); if(shipmentDetail==null){ - return AjaxResult.error("出库明细未找到"); + throw new ServiceException("出库明细未找到"); } InventoryDetail inventoryDetail = inventoryDetailService.getById((shipmentCombinationModel.getInventoryDetailId())); if(inventoryDetail==null){ - return AjaxResult.error("库存未找到"); + throw new ServiceException("库存未找到"); } //校验数量是否超出 if((shipmentDetail.getShipQty().subtract(shipmentDetail.getRequestQty())).compareTo(shipmentCombinationModel.getShipQty())<0){ - return AjaxResult.error("录入数量超出明细待出数量"); + throw new ServiceException("录入数量超出明细待出数量"); } //校验库存可用数量 if(inventoryDetail.getQty().subtract(inventoryDetail.getTaskQty()).subtract(inventoryDetail.getLockedQty()).compareTo(shipmentCombinationModel.getShipQty())<0){ - return AjaxResult.error("录入数量超出可出数量"); + throw new ServiceException("录入数量超出可出数量"); } if(!shipmentDetail.getMaterialCode().equals(inventoryDetail.getMaterialCode())){ - return AjaxResult.error("配盘物料不一致"); + throw new ServiceException("配盘物料不一致"); } //库位 LambdaQueryWrapper<Location> lambdaQueryWrapper= Wrappers.lambdaQuery(); @@ -95,7 +100,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont .eq(Location::getCode,inventoryDetail.getLocationCode()); Location location = locationService.getOne(lambdaQueryWrapper); if (location == null) - return AjaxResult.error("库位 "+ inventoryDetail.getLocationCode() +" 不存在"); + throw new ServiceException("库位 "+ inventoryDetail.getLocationCode() +" 不存在"); if (location.getStatus().equals("lock")) { //如果库位状态是锁定的话,就查找出库组盘表,如果存在未下发 LambdaQueryWrapper<ShipmentContainerHeader> lam=Wrappers.lambdaQuery(); @@ -104,7 +109,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont .eq(ShipmentContainerHeader::getTaskCreated,0); ShipmentContainerHeader shipmentContainerHeader = this.getOne(lam); if (shipmentContainerHeader == null) { - return AjaxResult.error("库位已经锁定不能使用"); + throw new ServiceException("库位已经锁定不能使用"); } } @@ -141,7 +146,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont //更新单据状态 shipmentHeaderService.updateShipmentStatus(shipmentDetail.getShipmentId()); - return AjaxResult.success("成功"); + return shipmentContainerHeader; } /** @@ -157,7 +162,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont lambdaQueryWrapper.eq(ShipmentContainerHeader::getContainerCode,location.getContainerCode()) .eq(ShipmentContainerHeader::getWarehouseCode,ShiroUtils.getWarehouseCode()) .eq(ShipmentContainerHeader::getTaskCreated,1) - .eq(ShipmentContainerHeader::getEnable,10); + .eq(ShipmentContainerHeader::getStatus,10); ShipmentContainerHeader shipmentContainerHeader = this.getOne(lambdaQueryWrapper); if(shipmentContainerHeader != null) { throw new ServiceException("容器"+location.getContainerCode()+"已经生成任务,不能再添加明细;操作中止;"); @@ -167,7 +172,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont lam.eq(ShipmentContainerHeader::getContainerCode,location.getContainerCode()) .eq(ShipmentContainerHeader::getWarehouseCode,ShiroUtils.getWarehouseCode()) .eq(ShipmentContainerHeader::getTaskCreated,0) - .eq(ShipmentContainerHeader::getEnable,0); + .eq(ShipmentContainerHeader::getStatus,0); shipmentContainerHeader = this.getOne(lam); if (shipmentContainerHeader == null) { shipmentContainerHeader = new ShipmentContainerHeader(); @@ -175,7 +180,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont shipmentContainerHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); //赋值u8仓库 shipmentContainerHeader.setCompanyCode(shipmentDetail.getCompanyCode()); - shipmentContainerHeader.setEnable(0); + shipmentContainerHeader.setStatus(0); shipmentContainerHeader.setCreatedBy(ShiroUtils.getLoginName()); shipmentContainerHeader.setCreated(null); // Material material=new Material(); @@ -230,4 +235,132 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont return shipmentContainerDetail; } + + /** + * 取消组盘的一组明细 + * @param detailIds + * @return + */ + @Override + public AjaxResult cancelCombinationDetail(List<Integer> detailIds) { + List<ShipmentContainerDetail> shipmentContainerDetails = new ArrayList<>(); + for(int detailId:detailIds){ + ShipmentContainerDetail shipmentContainerDetail = shipmentContainerDetailService.getById(detailId); + shipmentContainerDetails.add(shipmentContainerDetail); + } + return cancelCombinationDetailInner(shipmentContainerDetails); + } + + /** + * 取消组盘的一组明细 + * @param shipmentContainerDetails + * @return + */ + @Override + @Transactional + public AjaxResult cancelCombinationDetailInner(List<ShipmentContainerDetail> shipmentContainerDetails) { + for(ShipmentContainerDetail shipmentContainerDetail:shipmentContainerDetails){ + //获取头 + ShipmentContainerHeader shipmentContainerHeader = this.getById(shipmentContainerDetail.getShippingContainerId()); + if(shipmentContainerHeader.getStatus()>9){ + return AjaxResult.error("容器"+shipmentContainerHeader.getContainerCode()+"非新建状态,不允许取消明细"); + } + //恢复占用库存 + InventoryDetail inventoryDetail = inventoryDetailService.getById(shipmentContainerDetail.getInventoryId()); + inventoryDetail.setTaskQty(inventoryDetail.getTaskQty().subtract(shipmentContainerDetail.getQty())); + inventoryDetailService.saveOrUpdate(inventoryDetail); + //恢复单据发货数量 + ShipmentDetail shipmentDetail = shipmentDetailService.getById(shipmentContainerDetail.getShipmentDetailId()); + shipmentDetail.setRequestQty(shipmentDetail.getRequestQty().subtract(shipmentContainerDetail.getQty())); + if(shipmentDetail.getRequestQty().compareTo(BigDecimal.ZERO) != 0 ){ + shipmentDetail.setStatus(200);//明细状态恢复,如果删除后还有以出数量就是波次 + }else{ + shipmentDetail.setStatus(0 );//明细状态 + } + shipmentDetailService.saveOrUpdate(shipmentDetail); + //删除这个配盘明细 + shipmentContainerDetailService.removeById(shipmentContainerDetail.getId()); + + //查询头表下还有没有明细,如果没有,则删了这个头表 + ShipmentContainerDetail condition = new ShipmentContainerDetail(); + condition.setShippingContainerId(shipmentContainerDetail.getShippingContainerId()); + List<Map<String, Object>> list= shipmentContainerDetailService.selectListMapByEqual("id", condition); + if(list==null||list.size() == 0){ + this.removeById(shipmentContainerHeader.getId()); + locationService.updateStatus(shipmentContainerHeader.getLocationCode(),"empty"); + } + //更新单据状态 + shipmentHeaderService.updateShipmentStatus(shipmentDetail.getShipmentId()); + } + return AjaxResult.success(""); + } + + + /** + * 出库自动组盘 + * @param shipmentCode + * @return + */ + @Override + @Transactional + public AjaxResult autoCombination(String shipmentCode) { + int num=0; + AjaxResult ajaxResult=new AjaxResult(); + + LambdaQueryWrapper<ShipmentDetail> lambdaQueryWrapper=Wrappers.lambdaQuery(); + lambdaQueryWrapper.eq(ShipmentDetail::getShipmentCode,shipmentCode) + .eq(ShipmentDetail::getWarehouseCode,ShiroUtils.getWarehouseCode()); + List<ShipmentDetail> shipmentDetailList = shipmentDetailService.list(lambdaQueryWrapper); + if(shipmentDetailList.size()<1 || shipmentDetailList==null){ + return AjaxResult.error("找不到子单链"); + } + for (ShipmentDetail item : shipmentDetailList) { + //获取需要出库数量 + BigDecimal shipmentQty = item.getShipQty().subtract(item.getRequestQty()); + //判断是否还有需要出库的物料,如果没有就跳过该物料 + if (shipmentQty.compareTo(BigDecimal.ZERO) <= 0) { + continue; + } + // 根据 仓库编码、货主编码、存货编码,物料状态,项目号来查找可以出库的物料 + ShippingSearch search = new ShippingSearch(); + search.setWarehouseCode(ShiroUtils.getWarehouseCode()); + search.setCompanyCode(item.getCompanyCode()); + search.setMaterialCode(item.getMaterialCode()); + search.setInventorySts(item.getInventorySts()); //物料状态 + + List<InventoryDetail> inventoryList = shippingCombinationService.getInventorys(search); + if (inventoryList.size() < 1) { + num = num + 1; + } else { + for (InventoryDetail inventory : inventoryList) { + //判断是否组盘完毕,完毕就退出内循环 + if (shipmentQty.compareTo(BigDecimal.ZERO) <= 0) { + break; + } + + BigDecimal inventoryQty = inventory.getQty().subtract(inventory.getTaskQty()); + ShipmentCombinationModel shipmentCombination = new ShipmentCombinationModel(); + shipmentCombination.setInventoryDetailId(inventory.getId()); + shipmentCombination.setShipmentDetailId(item.getId()); + shipmentCombination.setType((short) 300); + List<Integer> list=new ArrayList<>(); + //如果库存数 >= 待出库数,组盘数就是待出库数并且结束组盘,否则组盘数就是库存数 + if (inventoryQty.compareTo(shipmentQty) > -1) { + shipmentCombination.setShipQty(shipmentQty); + ShipmentContainerHeader shipmentContainerHeader=this.combination(shipmentCombination); + } else { + shipmentCombination.setShipQty(inventoryQty); + ShipmentContainerHeader shipmentContainerHeader=this.combination(shipmentCombination); + list.add(shipmentContainerHeader.getId()); + } + shipmentQty = shipmentQty.subtract(shipmentCombination.getShipQty()); + } + } + } + if(num==shipmentDetailList.size()){ + throw new ServiceException("单据物料在此库区没有库存,无法出库"); + } + return AjaxResult.success(""); + } + } diff --git a/src/main/java/com/huaheng/pc/shipment/shippingCombination/controller/ShippingCombinationController.java b/src/main/java/com/huaheng/pc/shipment/shippingCombination/controller/ShippingCombinationController.java index 9aa51b6..3acc584 100644 --- a/src/main/java/com/huaheng/pc/shipment/shippingCombination/controller/ShippingCombinationController.java +++ b/src/main/java/com/huaheng/pc/shipment/shippingCombination/controller/ShippingCombinationController.java @@ -13,6 +13,7 @@ import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; import com.huaheng.pc.shipment.shipmentContainerDetail.service.ShipmentContainerDetailService; import com.huaheng.pc.shipment.shipmentContainerHeader.domain.ShipmentCombinationModel; +import com.huaheng.pc.shipment.shipmentContainerHeader.domain.ShipmentContainerHeader; import com.huaheng.pc.shipment.shipmentContainerHeader.service.ShipmentContainerHeaderService; import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailServiceImpl; @@ -122,36 +123,36 @@ public class ShippingCombinationController extends BaseController { @PostMapping("/Addcombination") @ResponseBody public AjaxResult Addcombination(ShipmentCombinationModel shipmentCombinationModel){ - AjaxResult ajaxResult = shipmentContainerHeaderService.combination(shipmentCombinationModel); - return ajaxResult; + ShipmentContainerHeader shipmentContainerHeader= shipmentContainerHeaderService.combination(shipmentCombinationModel); + return AjaxResult.success(shipmentContainerHeader.getId()); } -// /** -// * 自动组盘 -// * @param shipmentCode -// * @return -// */ -// @RequiresPermissions("shipment:shippingCombination:combination") -// @PostMapping("/autoCombination") -// @ResponseBody -// public AjaxResult autoCombination(String shipmentCode){ -// AjaxResult ajaxResult = shipmentContainerHeaderService.autoCombination(shipmentCode); -// return ajaxResult; -// } - - - -// /** 取消组盘 -// * -// * @param shipmentContainerDetailIds -// * @return -// */ -// @RequiresPermissions("shipment:shippingCombination:remove") -// @PostMapping("/cancelCombination") -// @ResponseBody -// public AjaxResult cancelCombination(@RequestBody List<Integer> shipmentContainerDetailIds){ -// return shipmentContainerHeaderService.cancelCombinationDetail(shipmentContainerDetailIds); -// } + /** + * 自动组盘 + * @param shipmentCode + * @return + */ + @RequiresPermissions("shipment:shippingCombination:combination") + @PostMapping("/autoCombination") + @ResponseBody + public AjaxResult autoCombination(String shipmentCode){ + AjaxResult ajaxResult = shipmentContainerHeaderService.autoCombination(shipmentCode); + return ajaxResult; + } + + + + /** 取消组盘 + * + * @param shipmentContainerDetailIds + * @return + */ + @RequiresPermissions("shipment:shippingCombination:remove") + @PostMapping("/cancelCombination") + @ResponseBody + public AjaxResult cancelCombination(@RequestBody List<Integer> shipmentContainerDetailIds){ + return shipmentContainerHeaderService.cancelCombinationDetail(shipmentContainerDetailIds); + } } diff --git a/src/main/java/com/huaheng/pc/shipment/shippingCombination/mapper/ShippingCombinationMapper.java b/src/main/java/com/huaheng/pc/shipment/shippingCombination/mapper/ShippingCombinationMapper.java index 0674d68..5823af4 100644 --- a/src/main/java/com/huaheng/pc/shipment/shippingCombination/mapper/ShippingCombinationMapper.java +++ b/src/main/java/com/huaheng/pc/shipment/shippingCombination/mapper/ShippingCombinationMapper.java @@ -1,6 +1,13 @@ package com.huaheng.pc.shipment.shippingCombination.mapper; +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; +import com.huaheng.pc.shipment.shippingCombination.domain.ShippingSearch; + +import java.util.List; + public interface ShippingCombinationMapper { + List<InventoryDetail> getInventorys(ShippingSearch search); + } diff --git a/src/main/java/com/huaheng/pc/shipment/shippingCombination/service/ShippingCombinationService.java b/src/main/java/com/huaheng/pc/shipment/shippingCombination/service/ShippingCombinationService.java index 7811b60..fba8f25 100644 --- a/src/main/java/com/huaheng/pc/shipment/shippingCombination/service/ShippingCombinationService.java +++ b/src/main/java/com/huaheng/pc/shipment/shippingCombination/service/ShippingCombinationService.java @@ -1,10 +1,25 @@ package com.huaheng.pc.shipment.shippingCombination.service; +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; +import com.huaheng.pc.shipment.shippingCombination.domain.ShippingSearch; +import com.huaheng.pc.shipment.shippingCombination.mapper.ShippingCombinationMapper; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.List; + @Service public class ShippingCombinationService { + @Resource + private ShippingCombinationMapper shippingCombinationMapper; + + + public List<InventoryDetail> getInventorys(ShippingSearch search) { + List<InventoryDetail> list = shippingCombinationMapper.getInventorys(search); + return list; + } + } diff --git a/src/main/resources/mybatis/general/LocationMapper.xml b/src/main/resources/mybatis/general/LocationMapper.xml index 78625c5..8722311 100644 --- a/src/main/resources/mybatis/general/LocationMapper.xml +++ b/src/main/resources/mybatis/general/LocationMapper.xml @@ -38,4 +38,8 @@ version, userDef1, userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8, systemCreated </sql> + + <update id="updateStatus"> + UPDATE location set `status`=#{status} WHERE warehouseCode=#{warehouseCode} AND `code`=#{code} + </update> </mapper> \ No newline at end of file diff --git a/src/main/resources/mybatis/shipment/ShipmentCombinationMapper.xml b/src/main/resources/mybatis/shipment/ShipmentCombinationMapper.xml new file mode 100644 index 0000000..adee1a9 --- /dev/null +++ b/src/main/resources/mybatis/shipment/ShipmentCombinationMapper.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.huaheng.pc.shipment.shippingCombination.mapper.ShippingCombinationMapper"> + <resultMap id="BaseResultMap" type="com.huaheng.pc.shipment.shippingCombination.domain.ShippingSearch"> + <!--@mbg.generated--> + <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode" /> + <result column="companyCode" jdbcType="VARCHAR" property="companyCode" /> + <result column="code" jdbcType="VARCHAR" property="code" /> + <result column="materialCode" jdbcType="VARCHAR" property="materialCode" /> + <result column="locationCode" jdbcType="VARCHAR" property="locationCode" /> + <result column="containerCode" jdbcType="VARCHAR" property="containerCode" /> + <result column="inventorySts" jdbcType="VARCHAR" property="inventorySts" /> + <result column="project" jdbcType="VARCHAR" property="project" /> + <result column="code" jdbcType="VARCHAR" property="code" /> + </resultMap> + <sql id="Base_Column_List"> + <!--@mbg.generated--> + warehouseCode, companyCode, code, materialCode, locationCode, `containerCode`, inventorySts, + project + </sql> + + <select id="getInventorys" resultType="com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail"> + SELECT i.id, i.warehouseId, i.warehouseCode, i.locationId, i.locationCode, i.containerCode, + i.sourceCode, i.sourceLine, i.companyId, i.companyCode, i.materialId, i.materialCode, + i.receiptId, i.receiptCode, i.receiptDetailId, i.batch, i.lot, i.project, i.manufactureDate, + i.expirationDate, i.status, i.qty, i.taskQty, i.costPrice, i.listPrice, i.netPrice, i.created, + i.createdBy, i.lastUpdated, i.lastUpdatedBy, i.userDef1, i.userDef2, i.userDef3, i.deleted, + m.name materialName, m.userDef1 materialOldCode ,i.zoneCode + FROM inventory i + INNER JOIN material m ON i.materialCode = m.code + AND i.companyCode=#{companyCode} + AND i.warehouseCode=#{warehouseCode} + AND m.warehouseCode=#{warehouseCode} + AND i.qty > i.taskQty + AND i.materialCode=#{materialCode} + + INNER JOIN location l ON i.locationCode = l.code + AND l.warehouseCode=#{warehouseCode} + LEFT JOIN shipment_container_header s ON i.locationCode = s.locationCode + AND s.status=0 + AND s.warehouseCode=#{warehouseCode} + <where> + <if test="project != null and project != ''"> + AND i.project = #{project} + </if> + <if test="inventoryStatus != null and inventoryStatus != '' "> + AND i.status = #{inventoryStatus} + </if> + <if test="locationCode != null and locationCode != '' "> + AND i.locationCode = #{locationCode} + </if> + <if test="containerCode != null and containerCode != '' "> + AND i.containerCode = #{containerCode} + </if> + <if test="params != null and params.createdBegin != null and params.createdBegin != ''"> + AND i.created >= #{params.createdBegin} + </if> + <if test="params != null and params.createdEnd != null and params.createdEnd != ''"> + AND i.created <= #{params.createdEnd} + </if> + AND l.status='empty' OR (l.status='lock' AND s.id IS NOT NULL) + </where> + </select> +</mapper> \ No newline at end of file diff --git a/src/main/resources/mybatis/shipment/ShipmentContainerDetailMapper.xml b/src/main/resources/mybatis/shipment/ShipmentContainerDetailMapper.xml index 6bc1256..2535853 100644 --- a/src/main/resources/mybatis/shipment/ShipmentContainerDetailMapper.xml +++ b/src/main/resources/mybatis/shipment/ShipmentContainerDetailMapper.xml @@ -67,4 +67,47 @@ version, userDef1, userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8, processStamp </sql> + + <select id="selectListMapByEqual" resultType="java.util.HashMap"> + SELECT ${columns} FROM shipment_container_detail + <where> + <if test="condition.id != null"> + AND id = #{condition.id} + </if> + <if test="condition.headerId != null"> + AND headerId = #{condition.headerId} + </if> + <if test="condition.shipmentCode != null"> + AND shipmentCode = #{condition.shipmentCode} + </if> + <if test="condition.shipmentHeaderId != null"> + AND shipmentHeaderId = #{condition.shipmentHeaderId} + </if> + <if test="condition.shipmentDetailId != null"> + AND shipmentDetailId = #{condition.shipmentDetailId} + </if> + <if test="condition.materialCode != null"> + AND materialCode = #{condition.materialCode} + </if> + <if test="condition.materialName != null"> + AND materialName = #{condition.materialName} + </if> + <if test="condition.qty != null"> + AND qty = #{condition.qty} + </if> + <if test="condition.inventoryId != null"> + AND inventoryId = #{condition.inventoryId} + </if> + <if test="condition.created != null"> + AND created = #{condition.created} + </if> + <if test="condition.createdBy != null"> + AND createdBy = #{condition.createdBy} + </if> + <if test="condition.project != null"> + AND project = #{condition.project} + </if> + </where> + </select> + </mapper> \ No newline at end of file diff --git a/src/main/resources/mybatis/shipment/ShipmentContainerHeaderMapper.xml b/src/main/resources/mybatis/shipment/ShipmentContainerHeaderMapper.xml index e04c45d..0be3ac4 100644 --- a/src/main/resources/mybatis/shipment/ShipmentContainerHeaderMapper.xml +++ b/src/main/resources/mybatis/shipment/ShipmentContainerHeaderMapper.xml @@ -7,7 +7,7 @@ <result column="containerCode" jdbcType="VARCHAR" property="containerCode" /> <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode" /> <result column="containerType" jdbcType="VARCHAR" property="containerType" /> - <result column="enable" jdbcType="INTEGER" property="enable" /> + <result column="enable" jdbcType="INTEGER" property="status" /> <result column="parent" jdbcType="INTEGER" property="parent" /> <result column="totalWeight" jdbcType="DECIMAL" property="totalWeight" /> <result column="totalVolume" jdbcType="DECIMAL" property="totalVolume" />