Commit 46b5cd600235743a52a6008b852af19af38f8661
Merge remote-tracking branch 'origin/develop' into develop
Showing
68 changed files
with
4001 additions
and
850 deletions
Too many changes to show.
To preserve performance only 47 of 68 files are displayed.
.idea/encodings.xml
@@ -2,6 +2,7 @@ | @@ -2,6 +2,7 @@ | ||
2 | <project version="4"> | 2 | <project version="4"> |
3 | <component name="Encoding" native2AsciiForPropertiesFiles="true" defaultCharsetForPropertiesFiles="UTF-8"> | 3 | <component name="Encoding" native2AsciiForPropertiesFiles="true" defaultCharsetForPropertiesFiles="UTF-8"> |
4 | <file url="file://$PROJECT_DIR$" charset="UTF-8" /> | 4 | <file url="file://$PROJECT_DIR$" charset="UTF-8" /> |
5 | + <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" /> | ||
5 | <file url="PROJECT" charset="UTF-8" /> | 6 | <file url="PROJECT" charset="UTF-8" /> |
6 | </component> | 7 | </component> |
7 | </project> | 8 | </project> |
8 | \ No newline at end of file | 9 | \ No newline at end of file |
.idea/workspace.xml
@@ -5,11 +5,61 @@ | @@ -5,11 +5,61 @@ | ||
5 | </component> | 5 | </component> |
6 | <component name="ChangeListManager"> | 6 | <component name="ChangeListManager"> |
7 | <list default="true" id="baeae966-16bb-4f97-a411-22fe5a65cefd" name="Default Changelist" comment=""> | 7 | <list default="true" id="baeae966-16bb-4f97-a411-22fe5a65cefd" name="Default Changelist" comment=""> |
8 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/download/ApkController.java" afterDir="false" /> | ||
9 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/download/ApkInfo.java" afterDir="false" /> | ||
10 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/download/Constant.java" afterDir="false" /> | ||
11 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/general/CompanyInfo.java" afterDir="false" /> | ||
12 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/general/MobileUserController.java" afterDir="false" /> | ||
13 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/invenory/InventoryDetails.java" afterDir="false" /> | ||
14 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/invenory/MobileInventory.java" afterDir="false" /> | ||
15 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/invenory/MobileInventoryController.java" afterDir="false" /> | ||
16 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/invenory/ShipmentDetail.java" afterDir="false" /> | ||
17 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/invenory/TaskIds.java" afterDir="false" /> | ||
18 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/receipt/MaterialInfo.java" afterDir="false" /> | ||
19 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/receipt/MobileBatchReceiptController.java" afterDir="false" /> | ||
20 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/receipt/MobileOneByOneReceiptController.java" afterDir="false" /> | ||
21 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/receipt/MobilePutawayController.java" afterDir="false" /> | ||
22 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/receipt/ReceiptBill.java" afterDir="false" /> | ||
23 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/receipt/ReceiptResult.java" afterDir="false" /> | ||
24 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/shipment/Materialforecast.java" afterDir="false" /> | ||
25 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/shipment/MobileShipmentController.java" afterDir="false" /> | ||
26 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/shipment/MobileTaskForASRSController.java" afterDir="false" /> | ||
27 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/shipment/Shipment.java" afterDir="false" /> | ||
28 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/shipment/ShipmentBill.java" afterDir="false" /> | ||
29 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/shipment/ShipmentTaskModel.java" afterDir="false" /> | ||
30 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/common/mapper/ApkMapper.java" afterDir="false" /> | ||
31 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/domain/ReceiptContainerView.java" afterDir="false" /> | ||
32 | + <change afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/domain/MobileTask.java" afterDir="false" /> | ||
33 | + <change afterPath="$PROJECT_DIR$/src/main/resources/mybatis/download/DownloadMapper.xml" afterDir="false" /> | ||
34 | + <change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" /> | ||
8 | <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> | 35 | <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> |
9 | - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/config/material/print.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/config/material/print.html" afterDir="false" /> | 36 | + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/framework/config/ShiroConfig.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/framework/config/ShiroConfig.java" afterDir="false" /> |
37 | + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/mapper/LocationMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/mapper/LocationMapper.java" afterDir="false" /> | ||
38 | + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/service/LocationService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/service/LocationService.java" afterDir="false" /> | ||
39 | + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/service/LocationServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/service/LocationServiceImpl.java" afterDir="false" /> | ||
40 | + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/mapper/MaterialMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/mapper/MaterialMapper.java" afterDir="false" /> | ||
41 | + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/service/MaterialService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/service/MaterialService.java" afterDir="false" /> | ||
42 | + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/service/MaterialServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/service/MaterialServiceImpl.java" afterDir="false" /> | ||
43 | + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderService.java" afterDir="false" /> | ||
44 | + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.java" afterDir="false" /> | ||
45 | + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderService.java" afterDir="false" /> | ||
46 | + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java" afterDir="false" /> | ||
47 | + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailService.java" afterDir="false" /> | ||
48 | + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailServiceImpl.java" afterDir="false" /> | ||
49 | + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/mapper/ReceiptHeaderMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/mapper/ReceiptHeaderMapper.java" afterDir="false" /> | ||
50 | + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java" afterDir="false" /> | ||
51 | + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java" afterDir="false" /> | ||
52 | + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java" afterDir="false" /> | ||
53 | + <change beforePath="$PROJECT_DIR$/src/main/resources/application-dev.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application-dev.yml" afterDir="false" /> | ||
54 | + <change beforePath="$PROJECT_DIR$/src/main/resources/mybatis/config/LocationMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mybatis/config/LocationMapper.xml" afterDir="false" /> | ||
55 | + <change beforePath="$PROJECT_DIR$/src/main/resources/mybatis/config/MaterialMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mybatis/config/MaterialMapper.xml" afterDir="false" /> | ||
56 | + <change beforePath="$PROJECT_DIR$/src/main/resources/mybatis/config/WcsscanbarcodeMapper.xml" beforeDir="false" /> | ||
57 | + <change beforePath="$PROJECT_DIR$/src/main/resources/mybatis/receipt/ReceiptHeaderMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mybatis/receipt/ReceiptHeaderMapper.xml" afterDir="false" /> | ||
58 | + <change beforePath="$PROJECT_DIR$/src/main/resources/mybatis/xinyi/TokenMapper.xml" beforeDir="false" /> | ||
10 | </list> | 59 | </list> |
11 | <ignored path="$PROJECT_DIR$/target/" /> | 60 | <ignored path="$PROJECT_DIR$/target/" /> |
12 | <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> | 61 | <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> |
62 | + <option name="TRACKING_ENABLED" value="true" /> | ||
13 | <option name="SHOW_DIALOG" value="false" /> | 63 | <option name="SHOW_DIALOG" value="false" /> |
14 | <option name="HIGHLIGHT_CONFLICTS" value="true" /> | 64 | <option name="HIGHLIGHT_CONFLICTS" value="true" /> |
15 | <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> | 65 | <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> |
@@ -50,33 +100,11 @@ | @@ -50,33 +100,11 @@ | ||
50 | </component> | 100 | </component> |
51 | <component name="FileEditorManager"> | 101 | <component name="FileEditorManager"> |
52 | <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> | 102 | <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> |
53 | - <file pinned="false" current-in-tab="true"> | ||
54 | - <entry file="file://$PROJECT_DIR$/src/main/resources/templates/config/material/print.html"> | 103 | + <file leaf-file-name="MobileBatchReceiptController.java" pinned="false" current-in-tab="true"> |
104 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/mobile/receipt/MobileBatchReceiptController.java"> | ||
55 | <provider selected="true" editor-type-id="text-editor"> | 105 | <provider selected="true" editor-type-id="text-editor"> |
56 | - <state relative-caret-position="133"> | ||
57 | - <caret line="64" column="29" lean-forward="true" selection-start-line="64" selection-start-column="29" selection-end-line="64" selection-end-column="29" /> | ||
58 | - <folding> | ||
59 | - <element signature="n#style#0;n#input#0;n#td#1;n#tr#4;n#tbody#0;n#table#0;n#div#0;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
60 | - <element signature="n#style#0;n#input#0;n#td#1;n#tr#4;n#tbody#0;n#table#0;n#div#0;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
61 | - </folding> | ||
62 | - </state> | ||
63 | - </provider> | ||
64 | - </entry> | ||
65 | - </file> | ||
66 | - <file pinned="false" current-in-tab="false"> | ||
67 | - <entry file="file://$PROJECT_DIR$/src/main/resources/templates/config/material/material.html"> | ||
68 | - <provider selected="true" editor-type-id="text-editor"> | ||
69 | - <state relative-caret-position="-3041"> | ||
70 | - <caret line="67" column="12" selection-start-line="67" selection-start-column="12" selection-end-line="67" selection-end-column="12" /> | ||
71 | - </state> | ||
72 | - </provider> | ||
73 | - </entry> | ||
74 | - </file> | ||
75 | - <file pinned="false" current-in-tab="false"> | ||
76 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/controller/MaterialController.java"> | ||
77 | - <provider selected="true" editor-type-id="text-editor"> | ||
78 | - <state relative-caret-position="113"> | ||
79 | - <caret line="193" column="28" lean-forward="true" selection-start-line="193" selection-start-column="28" selection-end-line="193" selection-end-column="28" /> | 106 | + <state relative-caret-position="-1234"> |
107 | + <caret line="404" column="51" selection-start-line="404" selection-start-column="40" selection-end-line="404" selection-end-column="51" /> | ||
80 | </state> | 108 | </state> |
81 | </provider> | 109 | </provider> |
82 | </entry> | 110 | </entry> |
@@ -96,6 +124,18 @@ | @@ -96,6 +124,18 @@ | ||
96 | <component name="FindBugs-IDEA-Workspace"> | 124 | <component name="FindBugs-IDEA-Workspace"> |
97 | <toolWindowEditorPreview>false</toolWindowEditorPreview> | 125 | <toolWindowEditorPreview>false</toolWindowEditorPreview> |
98 | </component> | 126 | </component> |
127 | + <component name="FindInProjectRecents"> | ||
128 | + <findStrings> | ||
129 | + <find>materialService</find> | ||
130 | + <find>mobileCheckLocationCode</find> | ||
131 | + <find>inventoryDetailService</find> | ||
132 | + <find>getCompany</find> | ||
133 | + <find>getCompanyInfo</find> | ||
134 | + <find></insert></find> | ||
135 | + <find></insert></find> | ||
136 | + <find>insertApkInfo</find> | ||
137 | + </findStrings> | ||
138 | + </component> | ||
99 | <component name="Git.Settings"> | 139 | <component name="Git.Settings"> |
100 | <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> | 140 | <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> |
101 | <option name="RECENT_BRANCH_BY_REPOSITORY"> | 141 | <option name="RECENT_BRANCH_BY_REPOSITORY"> |
@@ -107,30 +147,73 @@ | @@ -107,30 +147,73 @@ | ||
107 | <component name="IdeDocumentHistory"> | 147 | <component name="IdeDocumentHistory"> |
108 | <option name="CHANGED_PATHS"> | 148 | <option name="CHANGED_PATHS"> |
109 | <list> | 149 | <list> |
110 | - <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/controller/ReceiptApi.java" /> | ||
111 | - <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/service/ReceiptApiService.java" /> | ||
112 | - <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java" /> | ||
113 | - <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/service/ShipmentApiService.java" /> | ||
114 | - <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/system/user/service/UserServiceImpl.java" /> | ||
115 | - <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/system/user/service/IUserService.java" /> | ||
116 | - <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/controller/BasicDataApi.java" /> | ||
117 | - <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/domain/InventoryDomain.java" /> | ||
118 | - <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/service/BasicDataApiService.java" /> | ||
119 | - <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/controller/ContainerController.java" /> | ||
120 | - <option value="$PROJECT_DIR$/src/main/resources/templates/config/container/container.html" /> | ||
121 | - <option value="$USER_HOME$/Desktop/boot/boot/打印二维码 - 多个组2.html" /> | ||
122 | - <option value="$PROJECT_DIR$/src/main/resources/static/css/style.css" /> | ||
123 | - <option value="$PROJECT_DIR$/src/main/resources/templates/config/container/print.html" /> | ||
124 | - <option value="$PROJECT_DIR$/src/main/resources/templates/config/location/location.html" /> | ||
125 | - <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/controller/LocationController.java" /> | ||
126 | - <option value="$PROJECT_DIR$/src/main/resources/templates/config/location/print.html" /> | ||
127 | - <option value="$PROJECT_DIR$/src/main/resources/templates/config/material/material.html" /> | ||
128 | - <option value="$PROJECT_DIR$/src/main/resources/templates/config/material/report.html" /> | ||
129 | <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/controller/MaterialController.java" /> | 150 | <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/controller/MaterialController.java" /> |
130 | <option value="$PROJECT_DIR$/src/main/resources/templates/config/material/print.html" /> | 151 | <option value="$PROJECT_DIR$/src/main/resources/templates/config/material/print.html" /> |
152 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/controller/CycleCountHeaderController.java" /> | ||
153 | + <option value="$PROJECT_DIR$/src/main/resources/templates/inventory/cycleCountHeader/add.html" /> | ||
154 | + <option value="$PROJECT_DIR$/src/main/resources/templates/shipment/shipmentHeader/report.html" /> | ||
155 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/service/CycleCountService.java" /> | ||
156 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/domain/CycCountDomain.java" /> | ||
157 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java" /> | ||
158 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/controller/CycleCountApi.java" /> | ||
159 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/domain/AdjustDomain.java" /> | ||
160 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/controller/AdjustApi.java" /> | ||
161 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/adjustDetail/controller/adjustDetailController.java" /> | ||
162 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/service/AdjustService.java" /> | ||
163 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/service/ReceiptApiService.java" /> | ||
164 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/controller/ReceiptApi.java" /> | ||
165 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/general/MobileUserController.java" /> | ||
166 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderService.java" /> | ||
167 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.java" /> | ||
168 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/invenory/MobileInventoryController.java" /> | ||
169 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/domain/MobileTask.java" /> | ||
170 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/mapper/LocationMapper.java" /> | ||
171 | + <option value="$PROJECT_DIR$/src/main/resources/mybatis/config/LocationMapper.xml" /> | ||
172 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailService.java" /> | ||
173 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailServiceImpl.java" /> | ||
174 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java" /> | ||
175 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/mapper/MaterialMapper.java" /> | ||
176 | + <option value="$PROJECT_DIR$/src/main/resources/mybatis/config/MaterialMapper.xml" /> | ||
177 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderService.java" /> | ||
178 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java" /> | ||
179 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/mapper/ReceiptHeaderMapper.java" /> | ||
180 | + <option value="$PROJECT_DIR$/src/main/resources/mybatis/receipt/ReceiptHeaderMapper.xml" /> | ||
181 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/service/LocationService.java" /> | ||
182 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/service/LocationServiceImpl.java" /> | ||
183 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/shipment/MobileShipmentController.java" /> | ||
184 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/receipt/MobilePutawayController.java" /> | ||
185 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java" /> | ||
186 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java" /> | ||
187 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/service/MaterialService.java" /> | ||
188 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/service/MaterialServiceImpl.java" /> | ||
189 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/wcsScanBarcode/WcsScanBarcodeController.java" /> | ||
190 | + <option value="$PROJECT_DIR$/src/main/resources/application-dev.yml" /> | ||
191 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/download/ApkInfo.java" /> | ||
192 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/download/ret/ServiceException.java" /> | ||
193 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/download/Constant.java" /> | ||
194 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/download/ApkMapper.java" /> | ||
195 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/download/mapper/ApkMapper.java" /> | ||
196 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/framework/config/ShiroConfig.java" /> | ||
197 | + <option value="$PROJECT_DIR$/src/main/resources/mybatis/download/DownloadMapper.xml" /> | ||
198 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/common/mapper/ApkMapper.java" /> | ||
199 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/download/ApkController.java" /> | ||
200 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/mobile/receipt/MobileBatchReceiptController.java" /> | ||
131 | </list> | 201 | </list> |
132 | </option> | 202 | </option> |
133 | </component> | 203 | </component> |
204 | + <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" /> | ||
205 | + <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" /> | ||
206 | + <component name="JsGulpfileManager"> | ||
207 | + <detection-done>true</detection-done> | ||
208 | + <sorting>DEFINITION_ORDER</sorting> | ||
209 | + </component> | ||
210 | + <component name="MavenImportPreferences"> | ||
211 | + <option name="importingSettings"> | ||
212 | + <MavenImportingSettings> | ||
213 | + <option name="importAutomatically" value="true" /> | ||
214 | + </MavenImportingSettings> | ||
215 | + </option> | ||
216 | + </component> | ||
134 | <component name="MavenProjectNavigator"> | 217 | <component name="MavenProjectNavigator"> |
135 | <treeState> | 218 | <treeState> |
136 | <expand> | 219 | <expand> |
@@ -142,10 +225,14 @@ | @@ -142,10 +225,14 @@ | ||
142 | <select /> | 225 | <select /> |
143 | </treeState> | 226 | </treeState> |
144 | </component> | 227 | </component> |
228 | + <component name="NodePackageJsonFileManager"> | ||
229 | + <packageJsonPaths /> | ||
230 | + </component> | ||
145 | <component name="ProjectFrameBounds" extendedState="6"> | 231 | <component name="ProjectFrameBounds" extendedState="6"> |
146 | - <option name="x" value="470" /> | ||
147 | - <option name="width" value="980" /> | ||
148 | - <option name="height" value="1030" /> | 232 | + <option name="x" value="-10" /> |
233 | + <option name="y" value="-10" /> | ||
234 | + <option name="width" value="1400" /> | ||
235 | + <option name="height" value="780" /> | ||
149 | </component> | 236 | </component> |
150 | <component name="ProjectId" id="1QOzUtfkdeRmYuw3MIDHXXMLsFH" /> | 237 | <component name="ProjectId" id="1QOzUtfkdeRmYuw3MIDHXXMLsFH" /> |
151 | <component name="ProjectLevelVcsManager"> | 238 | <component name="ProjectLevelVcsManager"> |
@@ -156,8 +243,7 @@ | @@ -156,8 +243,7 @@ | ||
156 | <foldersAlwaysOnTop value="true" /> | 243 | <foldersAlwaysOnTop value="true" /> |
157 | </navigator> | 244 | </navigator> |
158 | <panes> | 245 | <panes> |
159 | - <pane id="Scope" /> | ||
160 | - <pane id="PackagesPane" /> | 246 | + <pane id="AndroidView" /> |
161 | <pane id="ProjectPane"> | 247 | <pane id="ProjectPane"> |
162 | <subPane> | 248 | <subPane> |
163 | <expand> | 249 | <expand> |
@@ -208,53 +294,7 @@ | @@ -208,53 +294,7 @@ | ||
208 | <item name="java" type="462c0819:PsiDirectoryNode" /> | 294 | <item name="java" type="462c0819:PsiDirectoryNode" /> |
209 | <item name="com" type="462c0819:PsiDirectoryNode" /> | 295 | <item name="com" type="462c0819:PsiDirectoryNode" /> |
210 | <item name="huaheng" type="462c0819:PsiDirectoryNode" /> | 296 | <item name="huaheng" type="462c0819:PsiDirectoryNode" /> |
211 | - <item name="api" type="462c0819:PsiDirectoryNode" /> | ||
212 | - </path> | ||
213 | - <path> | ||
214 | - <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | ||
215 | - <item name="wms2" type="462c0819:PsiDirectoryNode" /> | ||
216 | - <item name="src" type="462c0819:PsiDirectoryNode" /> | ||
217 | - <item name="main" type="462c0819:PsiDirectoryNode" /> | ||
218 | - <item name="java" type="462c0819:PsiDirectoryNode" /> | ||
219 | - <item name="com" type="462c0819:PsiDirectoryNode" /> | ||
220 | - <item name="huaheng" type="462c0819:PsiDirectoryNode" /> | ||
221 | - <item name="pc" type="462c0819:PsiDirectoryNode" /> | ||
222 | - </path> | ||
223 | - <path> | ||
224 | - <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | ||
225 | - <item name="wms2" type="462c0819:PsiDirectoryNode" /> | ||
226 | - <item name="src" type="462c0819:PsiDirectoryNode" /> | ||
227 | - <item name="main" type="462c0819:PsiDirectoryNode" /> | ||
228 | - <item name="java" type="462c0819:PsiDirectoryNode" /> | ||
229 | - <item name="com" type="462c0819:PsiDirectoryNode" /> | ||
230 | - <item name="huaheng" type="462c0819:PsiDirectoryNode" /> | ||
231 | - <item name="pc" type="462c0819:PsiDirectoryNode" /> | ||
232 | - <item name="config" type="462c0819:PsiDirectoryNode" /> | ||
233 | - </path> | ||
234 | - <path> | ||
235 | - <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | ||
236 | - <item name="wms2" type="462c0819:PsiDirectoryNode" /> | ||
237 | - <item name="src" type="462c0819:PsiDirectoryNode" /> | ||
238 | - <item name="main" type="462c0819:PsiDirectoryNode" /> | ||
239 | - <item name="java" type="462c0819:PsiDirectoryNode" /> | ||
240 | - <item name="com" type="462c0819:PsiDirectoryNode" /> | ||
241 | - <item name="huaheng" type="462c0819:PsiDirectoryNode" /> | ||
242 | - <item name="pc" type="462c0819:PsiDirectoryNode" /> | ||
243 | - <item name="config" type="462c0819:PsiDirectoryNode" /> | ||
244 | - <item name="location" type="462c0819:PsiDirectoryNode" /> | ||
245 | - </path> | ||
246 | - <path> | ||
247 | - <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | ||
248 | - <item name="wms2" type="462c0819:PsiDirectoryNode" /> | ||
249 | - <item name="src" type="462c0819:PsiDirectoryNode" /> | ||
250 | - <item name="main" type="462c0819:PsiDirectoryNode" /> | ||
251 | - <item name="java" type="462c0819:PsiDirectoryNode" /> | ||
252 | - <item name="com" type="462c0819:PsiDirectoryNode" /> | ||
253 | - <item name="huaheng" type="462c0819:PsiDirectoryNode" /> | ||
254 | - <item name="pc" type="462c0819:PsiDirectoryNode" /> | ||
255 | - <item name="config" type="462c0819:PsiDirectoryNode" /> | ||
256 | - <item name="location" type="462c0819:PsiDirectoryNode" /> | ||
257 | - <item name="controller" type="462c0819:PsiDirectoryNode" /> | 297 | + <item name="mobile" type="462c0819:PsiDirectoryNode" /> |
258 | </path> | 298 | </path> |
259 | <path> | 299 | <path> |
260 | <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | 300 | <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> |
@@ -264,92 +304,8 @@ | @@ -264,92 +304,8 @@ | ||
264 | <item name="java" type="462c0819:PsiDirectoryNode" /> | 304 | <item name="java" type="462c0819:PsiDirectoryNode" /> |
265 | <item name="com" type="462c0819:PsiDirectoryNode" /> | 305 | <item name="com" type="462c0819:PsiDirectoryNode" /> |
266 | <item name="huaheng" type="462c0819:PsiDirectoryNode" /> | 306 | <item name="huaheng" type="462c0819:PsiDirectoryNode" /> |
267 | - <item name="pc" type="462c0819:PsiDirectoryNode" /> | ||
268 | - <item name="config" type="462c0819:PsiDirectoryNode" /> | ||
269 | - <item name="material" type="462c0819:PsiDirectoryNode" /> | ||
270 | - </path> | ||
271 | - <path> | ||
272 | - <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | ||
273 | - <item name="wms2" type="462c0819:PsiDirectoryNode" /> | ||
274 | - <item name="src" type="462c0819:PsiDirectoryNode" /> | ||
275 | - <item name="main" type="462c0819:PsiDirectoryNode" /> | ||
276 | - <item name="java" type="462c0819:PsiDirectoryNode" /> | ||
277 | - <item name="com" type="462c0819:PsiDirectoryNode" /> | ||
278 | - <item name="huaheng" type="462c0819:PsiDirectoryNode" /> | ||
279 | - <item name="pc" type="462c0819:PsiDirectoryNode" /> | ||
280 | - <item name="config" type="462c0819:PsiDirectoryNode" /> | ||
281 | - <item name="material" type="462c0819:PsiDirectoryNode" /> | ||
282 | - <item name="controller" type="462c0819:PsiDirectoryNode" /> | ||
283 | - </path> | ||
284 | - <path> | ||
285 | - <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | ||
286 | - <item name="wms2" type="462c0819:PsiDirectoryNode" /> | ||
287 | - <item name="src" type="462c0819:PsiDirectoryNode" /> | ||
288 | - <item name="main" type="462c0819:PsiDirectoryNode" /> | ||
289 | - <item name="java" type="462c0819:PsiDirectoryNode" /> | ||
290 | - <item name="com" type="462c0819:PsiDirectoryNode" /> | ||
291 | - <item name="huaheng" type="462c0819:PsiDirectoryNode" /> | ||
292 | - <item name="pc" type="462c0819:PsiDirectoryNode" /> | ||
293 | - <item name="inventory" type="462c0819:PsiDirectoryNode" /> | ||
294 | - </path> | ||
295 | - <path> | ||
296 | - <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | ||
297 | - <item name="wms2" type="462c0819:PsiDirectoryNode" /> | ||
298 | - <item name="src" type="462c0819:PsiDirectoryNode" /> | ||
299 | - <item name="main" type="462c0819:PsiDirectoryNode" /> | ||
300 | - <item name="java" type="462c0819:PsiDirectoryNode" /> | ||
301 | - <item name="com" type="462c0819:PsiDirectoryNode" /> | ||
302 | - <item name="huaheng" type="462c0819:PsiDirectoryNode" /> | ||
303 | - <item name="pc" type="462c0819:PsiDirectoryNode" /> | ||
304 | - <item name="inventory" type="462c0819:PsiDirectoryNode" /> | ||
305 | - <item name="inventoryTransaction" type="462c0819:PsiDirectoryNode" /> | ||
306 | - </path> | ||
307 | - <path> | ||
308 | - <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | ||
309 | - <item name="wms2" type="462c0819:PsiDirectoryNode" /> | ||
310 | - <item name="src" type="462c0819:PsiDirectoryNode" /> | ||
311 | - <item name="main" type="462c0819:PsiDirectoryNode" /> | ||
312 | - <item name="java" type="462c0819:PsiDirectoryNode" /> | ||
313 | - <item name="com" type="462c0819:PsiDirectoryNode" /> | ||
314 | - <item name="huaheng" type="462c0819:PsiDirectoryNode" /> | ||
315 | - <item name="pc" type="462c0819:PsiDirectoryNode" /> | ||
316 | - <item name="inventory" type="462c0819:PsiDirectoryNode" /> | ||
317 | - <item name="inventoryTransaction" type="462c0819:PsiDirectoryNode" /> | ||
318 | - <item name="controller" type="462c0819:PsiDirectoryNode" /> | ||
319 | - </path> | ||
320 | - <path> | ||
321 | - <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | ||
322 | - <item name="wms2" type="462c0819:PsiDirectoryNode" /> | ||
323 | - <item name="src" type="462c0819:PsiDirectoryNode" /> | ||
324 | - <item name="main" type="462c0819:PsiDirectoryNode" /> | ||
325 | - <item name="resources" type="462c0819:PsiDirectoryNode" /> | ||
326 | - </path> | ||
327 | - <path> | ||
328 | - <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | ||
329 | - <item name="wms2" type="462c0819:PsiDirectoryNode" /> | ||
330 | - <item name="src" type="462c0819:PsiDirectoryNode" /> | ||
331 | - <item name="main" type="462c0819:PsiDirectoryNode" /> | ||
332 | - <item name="resources" type="462c0819:PsiDirectoryNode" /> | ||
333 | - <item name="templates" type="462c0819:PsiDirectoryNode" /> | ||
334 | - </path> | ||
335 | - <path> | ||
336 | - <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | ||
337 | - <item name="wms2" type="462c0819:PsiDirectoryNode" /> | ||
338 | - <item name="src" type="462c0819:PsiDirectoryNode" /> | ||
339 | - <item name="main" type="462c0819:PsiDirectoryNode" /> | ||
340 | - <item name="resources" type="462c0819:PsiDirectoryNode" /> | ||
341 | - <item name="templates" type="462c0819:PsiDirectoryNode" /> | ||
342 | - <item name="config" type="462c0819:PsiDirectoryNode" /> | ||
343 | - </path> | ||
344 | - <path> | ||
345 | - <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | ||
346 | - <item name="wms2" type="462c0819:PsiDirectoryNode" /> | ||
347 | - <item name="src" type="462c0819:PsiDirectoryNode" /> | ||
348 | - <item name="main" type="462c0819:PsiDirectoryNode" /> | ||
349 | - <item name="resources" type="462c0819:PsiDirectoryNode" /> | ||
350 | - <item name="templates" type="462c0819:PsiDirectoryNode" /> | ||
351 | - <item name="config" type="462c0819:PsiDirectoryNode" /> | ||
352 | - <item name="material" type="462c0819:PsiDirectoryNode" /> | 307 | + <item name="mobile" type="462c0819:PsiDirectoryNode" /> |
308 | + <item name="receipt" type="462c0819:PsiDirectoryNode" /> | ||
353 | </path> | 309 | </path> |
354 | <path> | 310 | <path> |
355 | <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | 311 | <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> |
@@ -357,8 +313,6 @@ | @@ -357,8 +313,6 @@ | ||
357 | <item name="src" type="462c0819:PsiDirectoryNode" /> | 313 | <item name="src" type="462c0819:PsiDirectoryNode" /> |
358 | <item name="main" type="462c0819:PsiDirectoryNode" /> | 314 | <item name="main" type="462c0819:PsiDirectoryNode" /> |
359 | <item name="resources" type="462c0819:PsiDirectoryNode" /> | 315 | <item name="resources" type="462c0819:PsiDirectoryNode" /> |
360 | - <item name="templates" type="462c0819:PsiDirectoryNode" /> | ||
361 | - <item name="inventory" type="462c0819:PsiDirectoryNode" /> | ||
362 | </path> | 316 | </path> |
363 | <path> | 317 | <path> |
364 | <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | 318 | <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> |
@@ -366,14 +320,14 @@ | @@ -366,14 +320,14 @@ | ||
366 | <item name="src" type="462c0819:PsiDirectoryNode" /> | 320 | <item name="src" type="462c0819:PsiDirectoryNode" /> |
367 | <item name="main" type="462c0819:PsiDirectoryNode" /> | 321 | <item name="main" type="462c0819:PsiDirectoryNode" /> |
368 | <item name="resources" type="462c0819:PsiDirectoryNode" /> | 322 | <item name="resources" type="462c0819:PsiDirectoryNode" /> |
369 | - <item name="templates" type="462c0819:PsiDirectoryNode" /> | ||
370 | - <item name="inventory" type="462c0819:PsiDirectoryNode" /> | ||
371 | - <item name="inventoryTransaction" type="462c0819:PsiDirectoryNode" /> | 323 | + <item name="mybatis" type="462c0819:PsiDirectoryNode" /> |
372 | </path> | 324 | </path> |
373 | </expand> | 325 | </expand> |
374 | <select /> | 326 | <select /> |
375 | </subPane> | 327 | </subPane> |
376 | </pane> | 328 | </pane> |
329 | + <pane id="PackagesPane" /> | ||
330 | + <pane id="Scope" /> | ||
377 | </panes> | 331 | </panes> |
378 | </component> | 332 | </component> |
379 | <component name="PropertiesComponent"> | 333 | <component name="PropertiesComponent"> |
@@ -383,11 +337,12 @@ | @@ -383,11 +337,12 @@ | ||
383 | <property name="RequestMappingsPanelOrder1" value="1" /> | 337 | <property name="RequestMappingsPanelOrder1" value="1" /> |
384 | <property name="RequestMappingsPanelWidth0" value="75" /> | 338 | <property name="RequestMappingsPanelWidth0" value="75" /> |
385 | <property name="RequestMappingsPanelWidth1" value="75" /> | 339 | <property name="RequestMappingsPanelWidth1" value="75" /> |
340 | + <property name="SearchEverywhereHistoryKey" value="Shiro	PSI	JAVA://com.huaheng.framework.config.ShiroConfig LocationSer	PSI	JAVA://com.huaheng.pc.config.location.service.LocationService" /> | ||
386 | <property name="WebServerToolWindowFactoryState" value="false" /> | 341 | <property name="WebServerToolWindowFactoryState" value="false" /> |
387 | <property name="aspect.path.notification.shown" value="true" /> | 342 | <property name="aspect.path.notification.shown" value="true" /> |
388 | - <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1578455422696" /> | 343 | + <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1579247661958" /> |
389 | <property name="full.screen.before.presentation.mode" value="false" /> | 344 | <property name="full.screen.before.presentation.mode" value="false" /> |
390 | - <property name="last_opened_file_path" value="$PROJECT_DIR$/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable" /> | 345 | + <property name="last_opened_file_path" value="$PROJECT_DIR$" /> |
391 | <property name="node.js.detected.package.eslint" value="true" /> | 346 | <property name="node.js.detected.package.eslint" value="true" /> |
392 | <property name="node.js.detected.package.tslint" value="true" /> | 347 | <property name="node.js.detected.package.tslint" value="true" /> |
393 | <property name="node.js.path.for.package.eslint" value="project" /> | 348 | <property name="node.js.path.for.package.eslint" value="project" /> |
@@ -402,17 +357,22 @@ | @@ -402,17 +357,22 @@ | ||
402 | <property name="settings.editor.selected.configurable" value="preferences.pluginManager" /> | 357 | <property name="settings.editor.selected.configurable" value="preferences.pluginManager" /> |
403 | </component> | 358 | </component> |
404 | <component name="RecentsManager"> | 359 | <component name="RecentsManager"> |
405 | - <key name="MoveFile.RECENT_KEYS"> | ||
406 | - <recent name="E:\code\wms2\src\main\resources\templates\config\configWarning" /> | 360 | + <key name="CopyFile.RECENT_KEYS"> |
361 | + <recent name="E:\web\wms2\src\main\resources\mybatis\download" /> | ||
362 | + <recent name="E:\web\wms2\src\main\java\com\huaheng\mobile\download" /> | ||
363 | + <recent name="E:\web\wms2\src\main\java\com\huaheng" /> | ||
364 | + <recent name="D:\wms2\src\main\resources\templates\shipment\shipmentHeader" /> | ||
365 | + <recent name="D:\wms2\src\main\resources\templates\config\material" /> | ||
407 | </key> | 366 | </key> |
408 | <key name="CopyClassDialog.RECENTS_KEY"> | 367 | <key name="CopyClassDialog.RECENTS_KEY"> |
409 | - <recent name="com.huaheng.api.general.domain" /> | 368 | + <recent name="com.huaheng.pc.common.mapper" /> |
369 | + <recent name="com.huaheng.mobile.download" /> | ||
370 | + <recent name="com.huaheng.pc.receipt.receiptContainerHeader.domain" /> | ||
371 | + <recent name="com.huaheng.pc.task.taskHeader.domain" /> | ||
372 | + <recent name="com.huaheng.api.general.service" /> | ||
410 | </key> | 373 | </key> |
411 | - <key name="CopyFile.RECENT_KEYS"> | ||
412 | - <recent name="D:\wms2\src\main\resources\templates\config\material" /> | ||
413 | - <recent name="D:\wms2\src\main\resources\templates\config\location" /> | ||
414 | - <recent name="D:\wms2\src\main\resources\templates\config\container" /> | ||
415 | - <recent name="E:\code\wms2\src\main\resources\static\ajax\libs\bootstrap-table\extensions\editable" /> | 374 | + <key name="MoveFile.RECENT_KEYS"> |
375 | + <recent name="E:\code\wms2\src\main\resources\templates\config\configWarning" /> | ||
416 | </key> | 376 | </key> |
417 | </component> | 377 | </component> |
418 | <component name="RunAnythingCache"> | 378 | <component name="RunAnythingCache"> |
@@ -438,7 +398,7 @@ | @@ -438,7 +398,7 @@ | ||
438 | </option> | 398 | </option> |
439 | <option name="contentProportion" value="0.012987013" /> | 399 | <option name="contentProportion" value="0.012987013" /> |
440 | </component> | 400 | </component> |
441 | - <component name="RunManager" selected="Spring Boot.HuaHengApplication (1)"> | 401 | + <component name="RunManager" selected="Spring Boot.HuaHengApplication"> |
442 | <configuration name="EncryptPassword" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true"> | 402 | <configuration name="EncryptPassword" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true"> |
443 | <option name="MAIN_CLASS_NAME" value="com.huaheng.test.EncryptPassword" /> | 403 | <option name="MAIN_CLASS_NAME" value="com.huaheng.test.EncryptPassword" /> |
444 | <module name="huaheng" /> | 404 | <module name="huaheng" /> |
@@ -448,9 +408,6 @@ | @@ -448,9 +408,6 @@ | ||
448 | <option name="ENABLED" value="true" /> | 408 | <option name="ENABLED" value="true" /> |
449 | </pattern> | 409 | </pattern> |
450 | </extension> | 410 | </extension> |
451 | - <method v="2"> | ||
452 | - <option name="Make" enabled="true" /> | ||
453 | - </method> | ||
454 | </configuration> | 411 | </configuration> |
455 | <configuration name="MqTest.send" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true"> | 412 | <configuration name="MqTest.send" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true"> |
456 | <module name="huaheng" /> | 413 | <module name="huaheng" /> |
@@ -460,13 +417,20 @@ | @@ -460,13 +417,20 @@ | ||
460 | <option name="ENABLED" value="true" /> | 417 | <option name="ENABLED" value="true" /> |
461 | </pattern> | 418 | </pattern> |
462 | </extension> | 419 | </extension> |
420 | + <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> | ||
421 | + <option name="ALTERNATIVE_JRE_PATH" /> | ||
463 | <option name="PACKAGE_NAME" value="com.huaheng.test" /> | 422 | <option name="PACKAGE_NAME" value="com.huaheng.test" /> |
464 | <option name="MAIN_CLASS_NAME" value="com.huaheng.test.MqTest" /> | 423 | <option name="MAIN_CLASS_NAME" value="com.huaheng.test.MqTest" /> |
465 | <option name="METHOD_NAME" value="send" /> | 424 | <option name="METHOD_NAME" value="send" /> |
466 | <option name="TEST_OBJECT" value="method" /> | 425 | <option name="TEST_OBJECT" value="method" /> |
467 | - <method v="2"> | ||
468 | - <option name="Make" enabled="true" /> | ||
469 | - </method> | 426 | + <option name="VM_PARAMETERS" /> |
427 | + <option name="PARAMETERS" /> | ||
428 | + <option name="WORKING_DIRECTORY" /> | ||
429 | + <option name="PASS_PARENT_ENVS" value="true" /> | ||
430 | + <option name="TEST_SEARCH_SCOPE"> | ||
431 | + <value defaultName="singleModule" /> | ||
432 | + </option> | ||
433 | + <patterns /> | ||
470 | </configuration> | 434 | </configuration> |
471 | <configuration name="ServiceTest.sendSimpleMail" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true"> | 435 | <configuration name="ServiceTest.sendSimpleMail" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true"> |
472 | <module name="huaheng" /> | 436 | <module name="huaheng" /> |
@@ -476,13 +440,20 @@ | @@ -476,13 +440,20 @@ | ||
476 | <option name="ENABLED" value="true" /> | 440 | <option name="ENABLED" value="true" /> |
477 | </pattern> | 441 | </pattern> |
478 | </extension> | 442 | </extension> |
443 | + <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> | ||
444 | + <option name="ALTERNATIVE_JRE_PATH" /> | ||
479 | <option name="PACKAGE_NAME" value="com.huaheng.test" /> | 445 | <option name="PACKAGE_NAME" value="com.huaheng.test" /> |
480 | <option name="MAIN_CLASS_NAME" value="com.huaheng.test.ServiceTest" /> | 446 | <option name="MAIN_CLASS_NAME" value="com.huaheng.test.ServiceTest" /> |
481 | <option name="METHOD_NAME" value="sendSimpleMail" /> | 447 | <option name="METHOD_NAME" value="sendSimpleMail" /> |
482 | <option name="TEST_OBJECT" value="method" /> | 448 | <option name="TEST_OBJECT" value="method" /> |
483 | - <method v="2"> | ||
484 | - <option name="Make" enabled="true" /> | ||
485 | - </method> | 449 | + <option name="VM_PARAMETERS" /> |
450 | + <option name="PARAMETERS" /> | ||
451 | + <option name="WORKING_DIRECTORY" /> | ||
452 | + <option name="PASS_PARENT_ENVS" value="true" /> | ||
453 | + <option name="TEST_SEARCH_SCOPE"> | ||
454 | + <value defaultName="singleModule" /> | ||
455 | + </option> | ||
456 | + <patterns /> | ||
486 | </configuration> | 457 | </configuration> |
487 | <configuration name="HuaHengApplication (1)" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true"> | 458 | <configuration name="HuaHengApplication (1)" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true"> |
488 | <module name="wms2" /> | 459 | <module name="wms2" /> |
@@ -493,9 +464,6 @@ | @@ -493,9 +464,6 @@ | ||
493 | </pattern> | 464 | </pattern> |
494 | </extension> | 465 | </extension> |
495 | <option name="SPRING_BOOT_MAIN_CLASS" value="com.huaheng.HuaHengApplication" /> | 466 | <option name="SPRING_BOOT_MAIN_CLASS" value="com.huaheng.HuaHengApplication" /> |
496 | - <method v="2"> | ||
497 | - <option name="Make" enabled="true" /> | ||
498 | - </method> | ||
499 | </configuration> | 467 | </configuration> |
500 | <configuration name="HuaHengApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true"> | 468 | <configuration name="HuaHengApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true"> |
501 | <module name="huaheng" /> | 469 | <module name="huaheng" /> |
@@ -509,9 +477,6 @@ | @@ -509,9 +477,6 @@ | ||
509 | <option name="ALTERNATIVE_JRE_PATH" /> | 477 | <option name="ALTERNATIVE_JRE_PATH" /> |
510 | <option name="UPDATE_ACTION_UPDATE_POLICY" value="UpdateResources" /> | 478 | <option name="UPDATE_ACTION_UPDATE_POLICY" value="UpdateResources" /> |
511 | <option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" /> | 479 | <option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" /> |
512 | - <method v="2"> | ||
513 | - <option name="Make" enabled="true" /> | ||
514 | - </method> | ||
515 | </configuration> | 480 | </configuration> |
516 | <list> | 481 | <list> |
517 | <item itemvalue="Application.EncryptPassword" /> | 482 | <item itemvalue="Application.EncryptPassword" /> |
@@ -522,8 +487,8 @@ | @@ -522,8 +487,8 @@ | ||
522 | </list> | 487 | </list> |
523 | <recent_temporary> | 488 | <recent_temporary> |
524 | <list> | 489 | <list> |
525 | - <item itemvalue="Spring Boot.HuaHengApplication (1)" /> | ||
526 | <item itemvalue="Spring Boot.HuaHengApplication" /> | 490 | <item itemvalue="Spring Boot.HuaHengApplication" /> |
491 | + <item itemvalue="Spring Boot.HuaHengApplication (1)" /> | ||
527 | <item itemvalue="JUnit.ServiceTest.sendSimpleMail" /> | 492 | <item itemvalue="JUnit.ServiceTest.sendSimpleMail" /> |
528 | <item itemvalue="JUnit.MqTest.send" /> | 493 | <item itemvalue="JUnit.MqTest.send" /> |
529 | <item itemvalue="Application.EncryptPassword" /> | 494 | <item itemvalue="Application.EncryptPassword" /> |
@@ -742,14 +707,17 @@ | @@ -742,14 +707,17 @@ | ||
742 | <workItem from="1578293993555" duration="9808000" /> | 707 | <workItem from="1578293993555" duration="9808000" /> |
743 | <workItem from="1578358115196" duration="1507000" /> | 708 | <workItem from="1578358115196" duration="1507000" /> |
744 | <workItem from="1578379653786" duration="11257000" /> | 709 | <workItem from="1578379653786" duration="11257000" /> |
745 | - <workItem from="1578444006015" duration="7109000" /> | ||
746 | - </task> | ||
747 | - <task id="LOCAL-00026" summary="添加自动生成容器编码"> | ||
748 | - <created>1569484931952</created> | ||
749 | - <option name="number" value="00026" /> | ||
750 | - <option name="presentableId" value="LOCAL-00026" /> | ||
751 | - <option name="project" value="LOCAL" /> | ||
752 | - <updated>1569484931952</updated> | 710 | + <workItem from="1578444006015" duration="19976000" /> |
711 | + <workItem from="1578529843067" duration="14401000" /> | ||
712 | + <workItem from="1578563682646" duration="32000" /> | ||
713 | + <workItem from="1578620227025" duration="6145000" /> | ||
714 | + <workItem from="1578880033342" duration="15319000" /> | ||
715 | + <workItem from="1578962187281" duration="17339000" /> | ||
716 | + <workItem from="1579048372056" duration="1299000" /> | ||
717 | + <workItem from="1579135252936" duration="19097000" /> | ||
718 | + <workItem from="1579221601177" duration="15358000" /> | ||
719 | + <workItem from="1582509082347" duration="14821000" /> | ||
720 | + <workItem from="1582590353002" duration="16210000" /> | ||
753 | </task> | 721 | </task> |
754 | <task id="LOCAL-00027" summary="修改入库首选项页面,规则查询使用数据字典值,表格值显示修改"> | 722 | <task id="LOCAL-00027" summary="修改入库首选项页面,规则查询使用数据字典值,表格值显示修改"> |
755 | <created>1569553028716</created> | 723 | <created>1569553028716</created> |
@@ -1087,50 +1055,58 @@ | @@ -1087,50 +1055,58 @@ | ||
1087 | <option name="project" value="LOCAL" /> | 1055 | <option name="project" value="LOCAL" /> |
1088 | <updated>1578455348001</updated> | 1056 | <updated>1578455348001</updated> |
1089 | </task> | 1057 | </task> |
1090 | - <option name="localTasksCounter" value="75" /> | 1058 | + <task id="LOCAL-00075" summary="物料打印"> |
1059 | + <created>1578455439194</created> | ||
1060 | + <option name="number" value="00075" /> | ||
1061 | + <option name="presentableId" value="LOCAL-00075" /> | ||
1062 | + <option name="project" value="LOCAL" /> | ||
1063 | + <updated>1578455439194</updated> | ||
1064 | + </task> | ||
1065 | + <option name="localTasksCounter" value="76" /> | ||
1091 | <servers /> | 1066 | <servers /> |
1092 | </component> | 1067 | </component> |
1093 | <component name="TimeTrackingManager"> | 1068 | <component name="TimeTrackingManager"> |
1094 | - <option name="totallyTimeSpent" value="158484000" /> | 1069 | + <option name="totallyTimeSpent" value="291372000" /> |
1095 | </component> | 1070 | </component> |
1096 | <component name="ToolWindowManager"> | 1071 | <component name="ToolWindowManager"> |
1097 | <frame x="-7" y="-7" width="1550" height="838" extended-state="6" /> | 1072 | <frame x="-7" y="-7" width="1550" height="838" extended-state="6" /> |
1098 | - <editor active="true" /> | ||
1099 | <layout> | 1073 | <layout> |
1100 | - <window_info content_ui="combo" id="Project" order="0" sideWeight="0.4978903" visible="true" weight="0.23391421" /> | ||
1101 | - <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> | ||
1102 | - <window_info id="Designer" order="2" /> | ||
1103 | - <window_info id="Image Layers" order="3" /> | 1074 | + <window_info anchor="right" id="Palette" order="4" /> |
1075 | + <window_info anchor="bottom" id="Event Log" order="10" sideWeight="0.08847185" side_tool="true" weight="0.43909347" /> | ||
1076 | + <window_info anchor="right" id="Maven Projects" order="5" weight="0.3297587" /> | ||
1077 | + <window_info anchor="bottom" id="Database Changes" order="12" /> | ||
1104 | <window_info id="Capture Tool" order="4" /> | 1078 | <window_info id="Capture Tool" order="4" /> |
1079 | + <window_info id="Designer" order="2" /> | ||
1080 | + <window_info anchor="bottom" id="Statistic" order="11" /> | ||
1081 | + <window_info anchor="right" id="Database" order="6" /> | ||
1082 | + <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> | ||
1083 | + <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> | ||
1105 | <window_info id="UI Designer" order="5" /> | 1084 | <window_info id="UI Designer" order="5" /> |
1106 | - <window_info id="Favorites" order="6" sideWeight="0.5021097" side_tool="true" weight="0.308311" /> | ||
1107 | - <window_info id="Web" order="7" side_tool="true" /> | ||
1108 | - <window_info anchor="bottom" id="Message" order="0" /> | ||
1109 | - <window_info anchor="bottom" id="Find" order="1" /> | ||
1110 | - <window_info anchor="bottom" id="Run" order="2" /> | ||
1111 | <window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> | 1085 | <window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> |
1112 | - <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> | ||
1113 | - <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> | ||
1114 | <window_info anchor="bottom" id="TODO" order="6" /> | 1086 | <window_info anchor="bottom" id="TODO" order="6" /> |
1087 | + <window_info anchor="bottom" id="Messages" order="15" sideWeight="0.49932975" weight="0.3281027" /> | ||
1088 | + <window_info anchor="right" id="Palette	" order="7" /> | ||
1089 | + <window_info id="Image Layers" order="3" /> | ||
1090 | + <window_info anchor="bottom" id="Java Enterprise" order="11" /> | ||
1091 | + <window_info anchor="right" id="Capture Analysis" order="5" /> | ||
1092 | + <window_info active="true" anchor="bottom" id="Run Dashboard" order="14" sideWeight="0.91152817" visible="true" weight="0.33808845" /> | ||
1093 | + <window_info anchor="bottom" id="Version Control" order="13" sideWeight="0.91152817" weight="0.32719547" /> | ||
1094 | + <window_info anchor="bottom" id="Run" order="2" /> | ||
1115 | <window_info anchor="bottom" id="Spring" order="7" /> | 1095 | <window_info anchor="bottom" id="Spring" order="7" /> |
1116 | <window_info anchor="bottom" id="Terminal" order="8" /> | 1096 | <window_info anchor="bottom" id="Terminal" order="8" /> |
1117 | - <window_info anchor="bottom" id="Docker" order="9" show_stripe_button="false" /> | ||
1118 | - <window_info anchor="bottom" id="Event Log" order="10" sideWeight="0.09048257" side_tool="true" weight="0.44192636" /> | ||
1119 | - <window_info anchor="bottom" id="Java Enterprise" order="11" /> | ||
1120 | - <window_info anchor="bottom" id="Database Changes" order="12" /> | ||
1121 | - <window_info anchor="bottom" id="Version Control" order="13" sideWeight="0.91152817" weight="0.3281471" /> | ||
1122 | - <window_info active="true" anchor="bottom" id="Run Dashboard" order="14" sideWeight="0.9095174" visible="true" weight="0.43342775" /> | ||
1123 | - <window_info anchor="bottom" id="Messages" order="15" sideWeight="0.49932975" weight="0.3286119" /> | 1097 | + <window_info content_ui="combo" id="Project" order="0" sideWeight="0.4978903" visible="true" weight="0.3069705" /> |
1098 | + <window_info anchor="right" id="Bean Validation" order="9" weight="0.3297587" /> | ||
1099 | + <window_info id="Web" order="7" side_tool="true" /> | ||
1100 | + <window_info anchor="bottom" id="Find" order="1" weight="0.32952926" /> | ||
1101 | + <window_info anchor="right" id="Theme Preview" order="8" /> | ||
1102 | + <window_info id="Favorites" order="6" sideWeight="0.5021097" side_tool="true" weight="0.308311" /> | ||
1103 | + <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> | ||
1124 | <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> | 1104 | <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> |
1125 | - <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> | ||
1126 | - <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> | 1105 | + <window_info anchor="bottom" id="Docker" order="9" show_stripe_button="false" /> |
1106 | + <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> | ||
1107 | + <window_info anchor="bottom" id="Message" order="0" /> | ||
1127 | <window_info anchor="right" id="Maven" order="3" weight="0.3297587" /> | 1108 | <window_info anchor="right" id="Maven" order="3" weight="0.3297587" /> |
1128 | - <window_info anchor="right" id="Palette" order="4" /> | ||
1129 | - <window_info anchor="right" id="Capture Analysis" order="5" /> | ||
1130 | - <window_info anchor="right" id="Database" order="6" /> | ||
1131 | - <window_info anchor="right" id="Palette	" order="7" /> | ||
1132 | - <window_info anchor="right" id="Theme Preview" order="8" /> | ||
1133 | - <window_info anchor="right" id="Bean Validation" order="9" weight="0.3297587" /> | 1109 | + <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> |
1134 | </layout> | 1110 | </layout> |
1135 | </component> | 1111 | </component> |
1136 | <component name="TypeScriptGeneratedFilesManager"> | 1112 | <component name="TypeScriptGeneratedFilesManager"> |
@@ -1154,20 +1130,9 @@ | @@ -1154,20 +1130,9 @@ | ||
1154 | </entry> | 1130 | </entry> |
1155 | </map> | 1131 | </map> |
1156 | </option> | 1132 | </option> |
1157 | - <option name="RECENT_FILTERS"> | ||
1158 | - <map> | ||
1159 | - <entry key="Branch"> | ||
1160 | - <value> | ||
1161 | - <list /> | ||
1162 | - </value> | ||
1163 | - </entry> | ||
1164 | - <entry key="User"> | ||
1165 | - <value> | ||
1166 | - <list /> | ||
1167 | - </value> | ||
1168 | - </entry> | ||
1169 | - </map> | ||
1170 | - </option> | 1133 | + </component> |
1134 | + <component name="VcsContentAnnotationSettings"> | ||
1135 | + <option name="myLimit" value="2678400000" /> | ||
1171 | </component> | 1136 | </component> |
1172 | <component name="VcsManagerConfiguration"> | 1137 | <component name="VcsManagerConfiguration"> |
1173 | <MESSAGE value="修改接口实体类" /> | 1138 | <MESSAGE value="修改接口实体类" /> |
@@ -1199,92 +1164,10 @@ | @@ -1199,92 +1164,10 @@ | ||
1199 | </component> | 1164 | </component> |
1200 | <component name="XDebuggerManager"> | 1165 | <component name="XDebuggerManager"> |
1201 | <breakpoint-manager> | 1166 | <breakpoint-manager> |
1202 | - <breakpoints> | ||
1203 | - <line-breakpoint enabled="true" type="java-line"> | ||
1204 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/bom/controller/BomHeaderController.java</url> | ||
1205 | - <line>164</line> | ||
1206 | - <properties /> | ||
1207 | - <option name="timeStamp" value="24" /> | ||
1208 | - </line-breakpoint> | ||
1209 | - <line-breakpoint enabled="true" type="java-line"> | ||
1210 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java</url> | ||
1211 | - <line>179</line> | ||
1212 | - <properties /> | ||
1213 | - <option name="timeStamp" value="28" /> | ||
1214 | - </line-breakpoint> | ||
1215 | - <line-breakpoint enabled="true" type="java-line"> | ||
1216 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/configValue/controller/ConfigValueController.java</url> | ||
1217 | - <line>141</line> | ||
1218 | - <properties /> | ||
1219 | - <option name="timeStamp" value="66" /> | ||
1220 | - </line-breakpoint> | ||
1221 | - <line-breakpoint enabled="true" type="java-line"> | ||
1222 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java</url> | ||
1223 | - <line>190</line> | ||
1224 | - <properties /> | ||
1225 | - <option name="timeStamp" value="87" /> | ||
1226 | - </line-breakpoint> | ||
1227 | - <line-breakpoint enabled="true" type="java-line"> | ||
1228 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java</url> | ||
1229 | - <line>194</line> | ||
1230 | - <properties> | ||
1231 | - <option name="lambda-ordinal" value="-1" /> | ||
1232 | - </properties> | ||
1233 | - <option name="timeStamp" value="112" /> | ||
1234 | - </line-breakpoint> | ||
1235 | - <line-breakpoint enabled="true" type="java-line"> | ||
1236 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/service/LocationServiceImpl.java</url> | ||
1237 | - <line>107</line> | ||
1238 | - <properties /> | ||
1239 | - <option name="timeStamp" value="121" /> | ||
1240 | - </line-breakpoint> | ||
1241 | - <line-breakpoint enabled="true" type="java-line"> | ||
1242 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/configWarning/service/ConfigWarningService.java</url> | ||
1243 | - <line>110</line> | ||
1244 | - <properties /> | ||
1245 | - <option name="timeStamp" value="124" /> | ||
1246 | - </line-breakpoint> | ||
1247 | - <line-breakpoint enabled="true" type="java-line"> | ||
1248 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/configWarning/service/ConfigWarningService.java</url> | ||
1249 | - <line>140</line> | ||
1250 | - <properties /> | ||
1251 | - <option name="timeStamp" value="125" /> | ||
1252 | - </line-breakpoint> | ||
1253 | - <line-breakpoint enabled="true" type="java-line"> | ||
1254 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/configWarning/service/ConfigWarningService.java</url> | ||
1255 | - <line>118</line> | ||
1256 | - <properties /> | ||
1257 | - <option name="timeStamp" value="126" /> | ||
1258 | - </line-breakpoint> | ||
1259 | - <line-breakpoint enabled="true" type="java-line"> | ||
1260 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/configWarning/service/ConfigWarningService.java</url> | ||
1261 | - <line>109</line> | ||
1262 | - <properties /> | ||
1263 | - <option name="timeStamp" value="127" /> | ||
1264 | - </line-breakpoint> | ||
1265 | - <line-breakpoint enabled="true" type="java-line"> | ||
1266 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java</url> | ||
1267 | - <line>709</line> | ||
1268 | - <properties /> | ||
1269 | - <option name="timeStamp" value="135" /> | ||
1270 | - </line-breakpoint> | ||
1271 | - <line-breakpoint enabled="true" type="java-line"> | ||
1272 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java</url> | ||
1273 | - <line>198</line> | ||
1274 | - <properties /> | ||
1275 | - <option name="timeStamp" value="139" /> | ||
1276 | - </line-breakpoint> | ||
1277 | - <line-breakpoint enabled="true" type="javascript"> | ||
1278 | - <url>file://$PROJECT_DIR$/src/main/resources/templates/check/checkingRegister/checkingRegister.html</url> | ||
1279 | - <line>308</line> | ||
1280 | - <option name="timeStamp" value="29" /> | ||
1281 | - </line-breakpoint> | ||
1282 | - <line-breakpoint enabled="true" type="javascript"> | ||
1283 | - <url>file://$PROJECT_DIR$/src/main/resources/templates/config/waveFlowHeader/waveFlowHeader.html</url> | ||
1284 | - <line>71</line> | ||
1285 | - <option name="timeStamp" value="43" /> | ||
1286 | - </line-breakpoint> | ||
1287 | - </breakpoints> | 1167 | + <breakpoints-dialog> |
1168 | + <breakpoints-dialog /> | ||
1169 | + </breakpoints-dialog> | ||
1170 | + <option name="time" value="8" /> | ||
1288 | </breakpoint-manager> | 1171 | </breakpoint-manager> |
1289 | <watches-manager> | 1172 | <watches-manager> |
1290 | <configuration name="SpringBootApplicationConfigurationType"> | 1173 | <configuration name="SpringBootApplicationConfigurationType"> |
@@ -1298,399 +1181,351 @@ | @@ -1298,399 +1181,351 @@ | ||
1298 | </SUITE> | 1181 | </SUITE> |
1299 | </component> | 1182 | </component> |
1300 | <component name="editorHistoryManager"> | 1183 | <component name="editorHistoryManager"> |
1301 | - <entry file="file://$PROJECT_DIR$/src/main/resources/static/js/qrcode/qrcode.min.js"> | 1184 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java"> |
1302 | <provider selected="true" editor-type-id="text-editor"> | 1185 | <provider selected="true" editor-type-id="text-editor"> |
1303 | - <state> | ||
1304 | - <caret column="4" selection-start-column="4" selection-end-column="4" /> | 1186 | + <state relative-caret-position="268"> |
1187 | + <caret line="63" column="34" selection-start-line="63" selection-start-column="15" selection-end-line="63" selection-end-column="34" /> | ||
1305 | </state> | 1188 | </state> |
1306 | </provider> | 1189 | </provider> |
1307 | </entry> | 1190 | </entry> |
1308 | - <entry file="file://$PROJECT_DIR$/src/main/resources/templates/receipt/receiptHeader/receiptHeader.html"> | 1191 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java"> |
1309 | <provider selected="true" editor-type-id="text-editor"> | 1192 | <provider selected="true" editor-type-id="text-editor"> |
1310 | - <state relative-caret-position="152"> | ||
1311 | - <caret line="675" column="43" lean-forward="true" selection-start-line="675" selection-start-column="43" selection-end-line="675" selection-end-column="43" /> | 1193 | + <state relative-caret-position="28823"> |
1194 | + <caret line="1593" column="40" selection-start-line="1593" selection-start-column="40" selection-end-line="1593" selection-end-column="40" /> | ||
1312 | </state> | 1195 | </state> |
1313 | </provider> | 1196 | </provider> |
1314 | </entry> | 1197 | </entry> |
1315 | - <entry file="file://$PROJECT_DIR$/src/main/resources/templates/receipt/receiptHeader/add.html"> | 1198 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/mobile/receipt/MaterialInfo.java"> |
1316 | <provider selected="true" editor-type-id="text-editor"> | 1199 | <provider selected="true" editor-type-id="text-editor"> |
1317 | - <state relative-caret-position="-962" /> | 1200 | + <state relative-caret-position="57"> |
1201 | + <caret line="3" column="2" lean-forward="true" selection-start-line="3" selection-start-column="2" selection-end-line="3" selection-end-column="2" /> | ||
1202 | + </state> | ||
1318 | </provider> | 1203 | </provider> |
1319 | </entry> | 1204 | </entry> |
1320 | - <entry file="file://$USER_HOME$/Desktop/长沙华恒企网2.0_new/答题HTML/答题HTML/answer.html"> | 1205 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/mobile/receipt/MobilePutawayController.java"> |
1321 | <provider selected="true" editor-type-id="text-editor"> | 1206 | <provider selected="true" editor-type-id="text-editor"> |
1322 | - <state relative-caret-position="-171" /> | 1207 | + <state relative-caret-position="513"> |
1208 | + <caret line="46" column="7" selection-start-line="46" selection-start-column="7" selection-end-line="46" selection-end-column="7" /> | ||
1209 | + </state> | ||
1323 | </provider> | 1210 | </provider> |
1324 | </entry> | 1211 | </entry> |
1325 | - <entry file="jar://$MAVEN_REPOSITORY$/com/alibaba/druid/1.1.18/druid-1.1.18.jar!/support/http/resources/css/bootstrap.min.css"> | 1212 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/mobile/shipment/MobileShipmentController.java"> |
1326 | <provider selected="true" editor-type-id="text-editor"> | 1213 | <provider selected="true" editor-type-id="text-editor"> |
1327 | - <state relative-caret-position="152"> | ||
1328 | - <caret line="8" column="25402" selection-start-line="8" selection-start-column="25402" selection-end-line="8" selection-end-column="25402" /> | 1214 | + <state relative-caret-position="950"> |
1215 | + <caret line="76" column="69" selection-start-line="76" selection-start-column="69" selection-end-line="76" selection-end-column="69" /> | ||
1329 | </state> | 1216 | </state> |
1330 | </provider> | 1217 | </provider> |
1331 | </entry> | 1218 | </entry> |
1332 | - <entry file="file://$PROJECT_DIR$/src/main/resources/static/css/main/style.min862f.css"> | 1219 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/mobile/shipment/MobileTaskForASRSController.java"> |
1333 | <provider selected="true" editor-type-id="text-editor"> | 1220 | <provider selected="true" editor-type-id="text-editor"> |
1334 | - <state> | ||
1335 | - <caret column="49663" selection-start-column="49663" selection-end-column="49663" /> | 1221 | + <state relative-caret-position="399"> |
1222 | + <caret line="35" column="16" selection-start-line="35" selection-start-column="16" selection-end-line="35" selection-end-column="16" /> | ||
1336 | </state> | 1223 | </state> |
1337 | </provider> | 1224 | </provider> |
1338 | </entry> | 1225 | </entry> |
1339 | - <entry file="file://$PROJECT_DIR$/src/main/resources/static/css/bootstrap.min.css"> | 1226 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/service/MaterialService.java"> |
1340 | <provider selected="true" editor-type-id="text-editor"> | 1227 | <provider selected="true" editor-type-id="text-editor"> |
1341 | - <state relative-caret-position="127"> | ||
1342 | - <caret line="2721" column="1" selection-start-line="2721" selection-start-column="1" selection-end-line="2721" selection-end-column="1" /> | 1228 | + <state relative-caret-position="589"> |
1229 | + <caret line="36" selection-start-line="36" selection-end-line="36" /> | ||
1343 | </state> | 1230 | </state> |
1344 | </provider> | 1231 | </provider> |
1345 | </entry> | 1232 | </entry> |
1346 | - <entry file="file://$PROJECT_DIR$/src/main/resources/static/css/style.css"> | 1233 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/mobile/wcsScanBarcode/WcsScanBarcodeController.java" /> |
1234 | + <entry file="file://$PROJECT_DIR$/src/main/resources/application-prd.yml"> | ||
1347 | <provider selected="true" editor-type-id="text-editor"> | 1235 | <provider selected="true" editor-type-id="text-editor"> |
1348 | - <state relative-caret-position="241"> | ||
1349 | - <caret line="3360" column="17" lean-forward="true" selection-start-line="3360" selection-start-column="17" selection-end-line="3360" selection-end-column="17" /> | 1236 | + <state relative-caret-position="209"> |
1237 | + <caret line="11" column="10" selection-start-line="11" selection-start-column="10" selection-end-line="11" selection-end-column="10" /> | ||
1350 | </state> | 1238 | </state> |
1351 | </provider> | 1239 | </provider> |
1352 | </entry> | 1240 | </entry> |
1353 | - <entry file="file://$PROJECT_DIR$/src/main/resources/templates/receipt/receiptHeader/report.html"> | 1241 | + <entry file="file://$PROJECT_DIR$/src/main/resources/application-dev.yml"> |
1354 | <provider selected="true" editor-type-id="text-editor"> | 1242 | <provider selected="true" editor-type-id="text-editor"> |
1355 | - <state relative-caret-position="1330"> | ||
1356 | - <caret line="70" column="4" lean-forward="true" selection-start-line="70" selection-start-column="4" selection-end-line="70" selection-end-column="22" /> | ||
1357 | - <folding> | ||
1358 | - <element signature="n#style#0;n#span#1;n#td#0;n#tr#0;n#thead#0;n#table#0;n#div#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1359 | - </folding> | 1243 | + <state relative-caret-position="1292"> |
1244 | + <caret line="68" column="19" selection-start-line="68" selection-start-column="19" selection-end-line="68" selection-end-column="19" /> | ||
1360 | </state> | 1245 | </state> |
1361 | </provider> | 1246 | </provider> |
1362 | </entry> | 1247 | </entry> |
1363 | - <entry file="file://$PROJECT_DIR$/src/main/resources/templates/config/container/print.html"> | 1248 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/service/MaterialServiceImpl.java"> |
1364 | <provider selected="true" editor-type-id="text-editor"> | 1249 | <provider selected="true" editor-type-id="text-editor"> |
1365 | - <state relative-caret-position="551"> | ||
1366 | - <caret line="29" column="24" lean-forward="true" selection-start-line="29" selection-start-column="24" selection-end-line="29" selection-end-column="24" /> | ||
1367 | - <folding> | ||
1368 | - <element signature="n#style#0;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1369 | - <element signature="n#style#0;n#div#0;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1370 | - <element signature="n#style#0;n#table#0;n#div#0;n#div#0;n#div#0;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1371 | - <element signature="n#style#0;n#table#0;n#div#1;n#div#0;n#div#0;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1372 | - </folding> | 1250 | + <state relative-caret-position="271"> |
1251 | + <caret line="160" column="5" selection-start-line="160" selection-start-column="5" selection-end-line="160" selection-end-column="5" /> | ||
1373 | </state> | 1252 | </state> |
1374 | </provider> | 1253 | </provider> |
1375 | </entry> | 1254 | </entry> |
1376 | - <entry file="file://$USER_HOME$/Desktop/boot/boot/打印二维码 - 多个组2.html"> | 1255 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shippingCombination/domain/ShippingSearch.java"> |
1377 | <provider selected="true" editor-type-id="text-editor"> | 1256 | <provider selected="true" editor-type-id="text-editor"> |
1378 | - <state relative-caret-position="19"> | ||
1379 | - <caret line="47" column="36" selection-start-line="47" selection-start-column="36" selection-end-line="47" selection-end-column="36" /> | 1257 | + <state relative-caret-position="145"> |
1258 | + <caret line="46" column="18" selection-start-line="46" selection-start-column="18" selection-end-line="46" selection-end-column="18" /> | ||
1380 | <folding> | 1259 | <folding> |
1381 | - <element signature="n#style#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1382 | - <element signature="n#style#0;n#div#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1383 | - <element signature="n#style#0;n#caption#0;n#table#0;n#div#1;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1384 | - <element signature="n#style#0;n#td#1;n#tr#0;n#tbody#0;n#table#0;n#div#1;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1385 | - <element signature="n#style#0;n#tr#1;n#tbody#0;n#table#0;n#div#1;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1386 | - <element signature="n#style#0;n#td#1;n#tr#1;n#tbody#0;n#table#0;n#div#1;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1387 | - <element signature="n#style#0;n#td#2;n#tr#1;n#tbody#0;n#table#0;n#div#1;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1388 | - <element signature="n#style#0;n#img#0;n#td#2;n#tr#1;n#tbody#0;n#table#0;n#div#1;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1389 | - <element signature="n#style#0;n#td#1;n#tr#2;n#tbody#0;n#table#0;n#div#1;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1390 | - <element signature="n#style#0;n#td#1;n#tr#3;n#tbody#0;n#table#0;n#div#1;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1391 | - <element signature="n#style#0;n#input#0;n#td#1;n#tr#3;n#tbody#0;n#table#0;n#div#1;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1392 | - <element signature="n#style#0;n#caption#0;n#table#0;n#div#2;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1393 | - <element signature="n#style#0;n#td#1;n#tr#0;n#tbody#0;n#table#0;n#div#2;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1394 | - <element signature="n#style#0;n#tr#1;n#tbody#0;n#table#0;n#div#2;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1395 | - <element signature="n#style#0;n#td#1;n#tr#1;n#tbody#0;n#table#0;n#div#2;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1396 | - <element signature="n#style#0;n#td#2;n#tr#1;n#tbody#0;n#table#0;n#div#2;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1397 | - <element signature="n#style#0;n#img#0;n#td#2;n#tr#1;n#tbody#0;n#table#0;n#div#2;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1398 | - <element signature="n#style#0;n#td#1;n#tr#2;n#tbody#0;n#table#0;n#div#2;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1399 | - <element signature="e#3995#4001#0" expanded="true" /> | ||
1400 | - <element signature="e#4001#4007#0" expanded="true" /> | ||
1401 | - <element signature="e#4007#4013#0" expanded="true" /> | ||
1402 | - <element signature="e#4013#4019#0" expanded="true" /> | ||
1403 | - <element signature="n#style#0;n#td#1;n#tr#3;n#tbody#0;n#table#0;n#div#2;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1404 | - <element signature="n#style#0;n#input#0;n#td#1;n#tr#3;n#tbody#0;n#table#0;n#div#2;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | 1260 | + <element signature="e#990#991#0" expanded="true" /> |
1261 | + <element signature="e#1024#1025#0" expanded="true" /> | ||
1405 | </folding> | 1262 | </folding> |
1406 | </state> | 1263 | </state> |
1407 | </provider> | 1264 | </provider> |
1408 | </entry> | 1265 | </entry> |
1409 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/service/taskFinish/TaskFinishServiceImpl.java"> | 1266 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/mobile/general/MobileUserController.java"> |
1410 | <provider selected="true" editor-type-id="text-editor"> | 1267 | <provider selected="true" editor-type-id="text-editor"> |
1411 | - <state relative-caret-position="149"> | ||
1412 | - <caret line="27" column="22" selection-start-line="27" selection-start-column="22" selection-end-line="27" selection-end-column="22" /> | 1268 | + <state relative-caret-position="304"> |
1269 | + <caret line="111" column="5" selection-start-line="111" selection-start-column="5" selection-end-line="111" selection-end-column="5" /> | ||
1413 | </state> | 1270 | </state> |
1414 | </provider> | 1271 | </provider> |
1415 | </entry> | 1272 | </entry> |
1416 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/service/taskFinish/TaskFinishService.java"> | ||
1417 | - <provider selected="true" editor-type-id="text-editor"> | ||
1418 | - <state relative-caret-position="133"> | ||
1419 | - <caret line="8" column="15" selection-start-line="8" selection-start-column="15" selection-end-line="8" selection-end-column="15" /> | ||
1420 | - </state> | ||
1421 | - </provider> | 1273 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/mobile/download/ret/RetCode.java"> |
1274 | + <provider selected="true" editor-type-id="text-editor" /> | ||
1422 | </entry> | 1275 | </entry> |
1423 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/controller/EmptyOutHandle.java"> | ||
1424 | - <provider selected="true" editor-type-id="text-editor"> | ||
1425 | - <state relative-caret-position="149"> | ||
1426 | - <caret line="24" column="13" selection-start-line="24" selection-start-column="13" selection-end-line="24" selection-end-column="13" /> | ||
1427 | - </state> | ||
1428 | - </provider> | 1276 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/mobile/download/ret/RetResponse.java"> |
1277 | + <provider selected="true" editor-type-id="text-editor" /> | ||
1429 | </entry> | 1278 | </entry> |
1430 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/controller/OverrideHandle.java"> | 1279 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/mobile/download/ret/ServiceException.java"> |
1431 | <provider selected="true" editor-type-id="text-editor"> | 1280 | <provider selected="true" editor-type-id="text-editor"> |
1432 | - <state relative-caret-position="149"> | ||
1433 | - <caret line="23" column="13" selection-start-line="23" selection-start-column="13" selection-end-line="23" selection-end-column="13" /> | ||
1434 | - </state> | ||
1435 | - </provider> | ||
1436 | - </entry> | ||
1437 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/controller/WarecellAllocation.java"> | ||
1438 | - <provider selected="true" editor-type-id="text-editor"> | ||
1439 | - <state relative-caret-position="-70"> | ||
1440 | - <caret line="41" column="67" selection-start-line="41" selection-start-column="60" selection-end-line="41" selection-end-column="67" /> | 1281 | + <state relative-caret-position="285"> |
1282 | + <caret line="19" column="1" lean-forward="true" selection-start-line="19" selection-start-column="1" selection-end-line="19" selection-end-column="1" /> | ||
1441 | </state> | 1283 | </state> |
1442 | </provider> | 1284 | </provider> |
1443 | </entry> | 1285 | </entry> |
1444 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/service/taskCancel/TaskCancelServiceImpl.java"> | 1286 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/mobile/download/ret/RetResult.java"> |
1445 | <provider selected="true" editor-type-id="text-editor"> | 1287 | <provider selected="true" editor-type-id="text-editor"> |
1446 | - <state relative-caret-position="209"> | ||
1447 | - <caret line="19" column="11" selection-start-line="19" selection-start-column="7" selection-end-line="19" selection-end-column="11" /> | 1288 | + <state relative-caret-position="95"> |
1289 | + <caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" /> | ||
1448 | </state> | 1290 | </state> |
1449 | </provider> | 1291 | </provider> |
1450 | </entry> | 1292 | </entry> |
1451 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/service/taskCancel/TaskCancelService.java"> | 1293 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/mobile/download/Constant.java"> |
1452 | <provider selected="true" editor-type-id="text-editor"> | 1294 | <provider selected="true" editor-type-id="text-editor"> |
1453 | <state relative-caret-position="133"> | 1295 | <state relative-caret-position="133"> |
1454 | - <caret line="7" column="15" selection-start-line="7" selection-start-column="15" selection-end-line="7" selection-end-column="15" /> | 1296 | + <caret line="7" selection-start-line="7" selection-end-line="7" /> |
1455 | </state> | 1297 | </state> |
1456 | </provider> | 1298 | </provider> |
1457 | </entry> | 1299 | </entry> |
1458 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/controller/TaskInfoController.java"> | 1300 | + <entry file="file://$PROJECT_DIR$/src/main/resources/application.yml"> |
1459 | <provider selected="true" editor-type-id="text-editor"> | 1301 | <provider selected="true" editor-type-id="text-editor"> |
1460 | - <state relative-caret-position="296"> | ||
1461 | - <caret line="24" column="34" lean-forward="true" selection-start-line="24" selection-start-column="34" selection-end-line="24" selection-end-column="34" /> | 1302 | + <state relative-caret-position="95"> |
1303 | + <caret line="5" column="3" selection-start-line="5" selection-start-column="3" selection-end-line="5" selection-end-column="3" /> | ||
1462 | </state> | 1304 | </state> |
1463 | </provider> | 1305 | </provider> |
1464 | </entry> | 1306 | </entry> |
1465 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/controller/TaskFinish.java"> | 1307 | + <entry file="file://$PROJECT_DIR$/src/main/resources/application-druid.properties"> |
1466 | <provider selected="true" editor-type-id="text-editor"> | 1308 | <provider selected="true" editor-type-id="text-editor"> |
1467 | - <state relative-caret-position="310"> | ||
1468 | - <caret line="35" column="59" lean-forward="true" selection-start-line="35" selection-start-column="59" selection-end-line="35" selection-end-column="59" /> | 1309 | + <state relative-caret-position="437"> |
1310 | + <caret line="23" column="15" selection-start-line="23" selection-start-column="15" selection-end-line="23" selection-end-column="15" /> | ||
1469 | </state> | 1311 | </state> |
1470 | </provider> | 1312 | </provider> |
1471 | </entry> | 1313 | </entry> |
1472 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/general/controller/BasicDataApi.java"> | 1314 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptDetail/domain/ReceiptDetail.java"> |
1473 | <provider selected="true" editor-type-id="text-editor"> | 1315 | <provider selected="true" editor-type-id="text-editor"> |
1474 | - <state relative-caret-position="291"> | ||
1475 | - <caret line="170" column="1" selection-start-line="170" selection-start-column="1" selection-end-line="170" selection-end-column="1" /> | 1316 | + <state relative-caret-position="-437"> |
1317 | + <caret line="15" column="13" selection-start-line="15" selection-start-column="13" selection-end-line="15" selection-end-column="13" /> | ||
1476 | </state> | 1318 | </state> |
1477 | </provider> | 1319 | </provider> |
1478 | </entry> | 1320 | </entry> |
1479 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/domain/WcsTask.java"> | 1321 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailServiceImpl.java"> |
1480 | <provider selected="true" editor-type-id="text-editor"> | 1322 | <provider selected="true" editor-type-id="text-editor"> |
1481 | - <state relative-caret-position="149"> | ||
1482 | - <caret line="14" column="13" selection-start-line="14" selection-start-column="13" selection-end-line="14" selection-end-column="13" /> | 1323 | + <state relative-caret-position="494"> |
1324 | + <caret line="67" column="31" selection-start-line="67" selection-start-column="12" selection-end-line="67" selection-end-column="31" /> | ||
1483 | </state> | 1325 | </state> |
1484 | </provider> | 1326 | </provider> |
1485 | </entry> | 1327 | </entry> |
1486 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/general/service/ReceiptApiService.java"> | 1328 | + <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/task/TaskDetailMapper.xml"> |
1487 | <provider selected="true" editor-type-id="text-editor"> | 1329 | <provider selected="true" editor-type-id="text-editor"> |
1488 | - <state relative-caret-position="247"> | ||
1489 | - <caret line="44" column="13" selection-start-line="44" selection-start-column="13" selection-end-line="44" selection-end-column="13" /> | 1330 | + <state relative-caret-position="171"> |
1331 | + <caret line="9" column="32" lean-forward="true" selection-start-line="9" selection-start-column="32" selection-end-line="9" selection-end-column="32" /> | ||
1490 | </state> | 1332 | </state> |
1491 | </provider> | 1333 | </provider> |
1492 | </entry> | 1334 | </entry> |
1493 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/general/controller/ReceiptController.java"> | 1335 | + <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/task/TaskHeaderMapper.xml"> |
1494 | <provider selected="true" editor-type-id="text-editor"> | 1336 | <provider selected="true" editor-type-id="text-editor"> |
1495 | - <state relative-caret-position="494"> | ||
1496 | - <caret line="35" column="51" selection-start-line="35" selection-start-column="51" selection-end-line="35" selection-end-column="51" /> | 1337 | + <state relative-caret-position="-95"> |
1338 | + <caret line="13" column="25" lean-forward="true" selection-start-line="13" selection-start-column="25" selection-end-line="13" selection-end-column="25" /> | ||
1497 | </state> | 1339 | </state> |
1498 | </provider> | 1340 | </provider> |
1499 | </entry> | 1341 | </entry> |
1500 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/general/service/ReceiptService.java"> | 1342 | + <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/task/TaskPreferenceMapper.xml"> |
1501 | <provider selected="true" editor-type-id="text-editor"> | 1343 | <provider selected="true" editor-type-id="text-editor"> |
1502 | - <state relative-caret-position="665"> | ||
1503 | - <caret line="64" column="42" selection-start-line="64" selection-start-column="33" selection-end-line="64" selection-end-column="42" /> | ||
1504 | - </state> | 1344 | + <state relative-caret-position="-342" /> |
1505 | </provider> | 1345 | </provider> |
1506 | </entry> | 1346 | </entry> |
1507 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/HuaHengServletInitializer.java"> | 1347 | + <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/system/DeptMapper.xml"> |
1508 | <provider selected="true" editor-type-id="text-editor"> | 1348 | <provider selected="true" editor-type-id="text-editor"> |
1509 | - <state relative-caret-position="150"> | ||
1510 | - <caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" /> | 1349 | + <state relative-caret-position="266"> |
1350 | + <caret line="14" column="26" selection-start-line="14" selection-start-column="26" selection-end-line="14" selection-end-column="26" /> | ||
1511 | </state> | 1351 | </state> |
1512 | </provider> | 1352 | </provider> |
1513 | </entry> | 1353 | </entry> |
1514 | - <entry file="file://$PROJECT_DIR$/src/main/resources/application-dev.yml"> | 1354 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptDetail/mapper/ReceiptDetailMapper.java"> |
1515 | <provider selected="true" editor-type-id="text-editor"> | 1355 | <provider selected="true" editor-type-id="text-editor"> |
1516 | - <state relative-caret-position="189"> | ||
1517 | - <caret line="66" column="12" lean-forward="true" selection-start-line="66" selection-start-column="12" selection-end-line="66" selection-end-column="12" /> | 1356 | + <state relative-caret-position="76"> |
1357 | + <caret line="4" column="56" lean-forward="true" selection-start-line="4" selection-start-column="56" selection-end-line="4" selection-end-column="56" /> | ||
1518 | </state> | 1358 | </state> |
1519 | </provider> | 1359 | </provider> |
1520 | </entry> | 1360 | </entry> |
1521 | - <entry file="file://$PROJECT_DIR$/src/main/resources/application.yml"> | 1361 | + <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/receipt/ReceiptDetailMapper.xml"> |
1522 | <provider selected="true" editor-type-id="text-editor"> | 1362 | <provider selected="true" editor-type-id="text-editor"> |
1523 | - <state relative-caret-position="-824" /> | 1363 | + <state relative-caret-position="-576"> |
1364 | + <caret line="70" column="5" lean-forward="true" selection-start-line="70" selection-start-column="5" selection-end-line="70" selection-end-column="5" /> | ||
1365 | + </state> | ||
1524 | </provider> | 1366 | </provider> |
1525 | </entry> | 1367 | </entry> |
1526 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/HuaHengApplication.java"> | 1368 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/mobile/invenory/MobileInventoryController.java"> |
1527 | <provider selected="true" editor-type-id="text-editor"> | 1369 | <provider selected="true" editor-type-id="text-editor"> |
1528 | - <state relative-caret-position="-26"> | ||
1529 | - <caret line="15" column="13" selection-start-line="15" selection-start-column="13" selection-end-line="15" selection-end-column="13" /> | 1370 | + <state relative-caret-position="157"> |
1371 | + <caret line="46" column="13" lean-forward="true" selection-start-line="46" selection-start-column="3" selection-end-line="46" selection-end-column="13" /> | ||
1530 | </state> | 1372 | </state> |
1531 | </provider> | 1373 | </provider> |
1532 | </entry> | 1374 | </entry> |
1533 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/adjustHeader/controller/adjustHeaderController.java"> | 1375 | + <entry file="file://$PROJECT_DIR$/src/main/resources/logback.xml"> |
1534 | <provider selected="true" editor-type-id="text-editor"> | 1376 | <provider selected="true" editor-type-id="text-editor"> |
1535 | - <state relative-caret-position="202"> | ||
1536 | - <caret line="156" lean-forward="true" selection-start-line="156" selection-end-line="156" /> | 1377 | + <state relative-caret-position="266"> |
1378 | + <caret line="14" column="17" lean-forward="true" selection-start-line="14" selection-start-column="17" selection-end-line="14" selection-end-column="17" /> | ||
1537 | </state> | 1379 | </state> |
1538 | </provider> | 1380 | </provider> |
1539 | </entry> | 1381 | </entry> |
1540 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/controller/CycleCountHeaderController.java"> | 1382 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/mobile/download/mapper/ApkMapper.java"> |
1541 | <provider selected="true" editor-type-id="text-editor"> | 1383 | <provider selected="true" editor-type-id="text-editor"> |
1542 | - <state relative-caret-position="317"> | ||
1543 | - <caret line="71" selection-start-line="71" selection-end-line="71" /> | 1384 | + <state relative-caret-position="266"> |
1385 | + <caret line="22" selection-start-line="22" selection-end-line="23" /> | ||
1544 | </state> | 1386 | </state> |
1545 | </provider> | 1387 | </provider> |
1546 | </entry> | 1388 | </entry> |
1547 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkHeader/controller/CheckHeaderController.java"> | 1389 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/framework/config/ShiroConfig.java"> |
1548 | <provider selected="true" editor-type-id="text-editor"> | 1390 | <provider selected="true" editor-type-id="text-editor"> |
1549 | - <state relative-caret-position="190"> | ||
1550 | - <caret line="38" column="13" selection-start-line="38" selection-start-column="13" selection-end-line="38" selection-end-column="13" /> | 1391 | + <state relative-caret-position="791"> |
1392 | + <caret line="267" column="71" lean-forward="true" selection-start-line="267" selection-start-column="71" selection-end-line="267" selection-end-column="71" /> | ||
1551 | </state> | 1393 | </state> |
1552 | </provider> | 1394 | </provider> |
1553 | </entry> | 1395 | </entry> |
1554 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/general/controller/ReceiptApi.java"> | 1396 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/mobile/invenory/MobileInventory.java"> |
1555 | <provider selected="true" editor-type-id="text-editor"> | 1397 | <provider selected="true" editor-type-id="text-editor"> |
1556 | - <state relative-caret-position="304"> | ||
1557 | - <caret line="25" column="7" selection-start-line="25" selection-start-column="7" selection-end-line="25" selection-end-column="7" /> | 1398 | + <state relative-caret-position="259"> |
1399 | + <caret line="18" column="15" lean-forward="true" selection-start-line="18" selection-start-column="15" selection-end-line="18" selection-end-column="15" /> | ||
1558 | </state> | 1400 | </state> |
1559 | </provider> | 1401 | </provider> |
1560 | </entry> | 1402 | </entry> |
1561 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/general/domain/ReceiptDomain.java"> | 1403 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkDetail/mapper/CheckDetailMapper.java"> |
1562 | <provider selected="true" editor-type-id="text-editor"> | 1404 | <provider selected="true" editor-type-id="text-editor"> |
1563 | <state relative-caret-position="95"> | 1405 | <state relative-caret-position="95"> |
1564 | - <caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" /> | 1406 | + <caret line="6" column="1" lean-forward="true" selection-start-line="6" selection-start-column="1" selection-end-line="6" selection-end-column="1" /> |
1565 | </state> | 1407 | </state> |
1566 | </provider> | 1408 | </provider> |
1567 | </entry> | 1409 | </entry> |
1568 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/controller/ContainerController.java"> | 1410 | + <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/check/CheckHeaderMapper.xml"> |
1569 | <provider selected="true" editor-type-id="text-editor"> | 1411 | <provider selected="true" editor-type-id="text-editor"> |
1570 | - <state relative-caret-position="2812"> | ||
1571 | - <caret line="181" selection-start-line="181" selection-end-line="195" selection-end-column="5" /> | 1412 | + <state relative-caret-position="-57"> |
1413 | + <caret line="21" column="71" lean-forward="true" selection-start-line="21" selection-start-column="71" selection-end-line="21" selection-end-column="71" /> | ||
1572 | </state> | 1414 | </state> |
1573 | </provider> | 1415 | </provider> |
1574 | </entry> | 1416 | </entry> |
1575 | - <entry file="file://$PROJECT_DIR$/src/main/resources/templates/config/container/container.html"> | 1417 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkingRegister/mapper/CheckingRegisterMapper.java"> |
1576 | <provider selected="true" editor-type-id="text-editor"> | 1418 | <provider selected="true" editor-type-id="text-editor"> |
1577 | - <state relative-caret-position="61"> | ||
1578 | - <caret line="202" selection-start-line="202" selection-end-line="214" selection-end-column="9" /> | 1419 | + <state relative-caret-position="76"> |
1420 | + <caret line="5" column="17" selection-start-line="5" selection-start-column="17" selection-end-line="5" selection-end-column="17" /> | ||
1579 | </state> | 1421 | </state> |
1580 | </provider> | 1422 | </provider> |
1581 | </entry> | 1423 | </entry> |
1582 | - <entry file="file://$APPLICATION_HOME_DIR$/plugins/JavaScriptLanguage/jsLanguageServicesImpl/external/lib.es5.d.ts"> | 1424 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerDetail/mapper/ReceiptContainerDetailMapper.java"> |
1583 | <provider selected="true" editor-type-id="text-editor"> | 1425 | <provider selected="true" editor-type-id="text-editor"> |
1584 | - <state relative-caret-position="166"> | ||
1585 | - <caret line="1215" column="4" selection-start-line="1215" selection-start-column="4" selection-end-line="1215" selection-end-column="4" /> | 1426 | + <state relative-caret-position="76"> |
1427 | + <caret line="5" column="17" selection-start-line="5" selection-start-column="17" selection-end-line="5" selection-end-column="17" /> | ||
1586 | </state> | 1428 | </state> |
1587 | </provider> | 1429 | </provider> |
1588 | </entry> | 1430 | </entry> |
1589 | - <entry file="file://$PROJECT_DIR$/src/main/resources/static/js/echarts/echarts.js"> | 1431 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/mapper/ReceiptContainerHeaderMapper.java"> |
1590 | <provider selected="true" editor-type-id="text-editor"> | 1432 | <provider selected="true" editor-type-id="text-editor"> |
1591 | - <state relative-caret-position="190"> | ||
1592 | - <caret line="11245" column="4" selection-start-line="11245" selection-start-column="4" selection-end-line="11245" selection-end-column="4" /> | 1433 | + <state relative-caret-position="76"> |
1434 | + <caret line="5" column="17" selection-start-line="5" selection-start-column="17" selection-end-line="5" selection-end-column="17" /> | ||
1593 | </state> | 1435 | </state> |
1594 | </provider> | 1436 | </provider> |
1595 | </entry> | 1437 | </entry> |
1596 | - <entry file="file://$USER_HOME$/Desktop/HttpPrinter3.0.0.5_20200103_014305_%E5%90%ABhtml%E7%A4%BA%E4%BE%8B/调用示例/Http协议示例/html/http_test_fastreport.html"> | 1438 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/mapper/ReceiptHeaderMapper.java"> |
1597 | <provider selected="true" editor-type-id="text-editor"> | 1439 | <provider selected="true" editor-type-id="text-editor"> |
1598 | - <state relative-caret-position="-3819"> | ||
1599 | - <caret line="207" column="42" selection-start-line="207" selection-start-column="27" selection-end-line="207" selection-end-column="42" /> | 1440 | + <state relative-caret-position="114"> |
1441 | + <caret line="9" column="32" lean-forward="true" selection-start-line="9" selection-start-column="32" selection-end-line="9" selection-end-column="32" /> | ||
1600 | </state> | 1442 | </state> |
1601 | </provider> | 1443 | </provider> |
1602 | </entry> | 1444 | </entry> |
1603 | - <entry file="file://$PROJECT_DIR$/src/main/resources/static/js/jquery.jqprint-0.3.js"> | 1445 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeaderHistory/mapper/ReceiptHeaderHistoryMapper.java"> |
1604 | <provider selected="true" editor-type-id="text-editor"> | 1446 | <provider selected="true" editor-type-id="text-editor"> |
1605 | - <state relative-caret-position="126"> | ||
1606 | - <caret line="60" column="104" selection-start-line="60" selection-start-column="104" selection-end-line="60" selection-end-column="104" /> | 1447 | + <state relative-caret-position="95"> |
1448 | + <caret line="6" column="1" lean-forward="true" selection-start-line="6" selection-start-column="1" selection-end-line="6" selection-end-column="1" /> | ||
1607 | </state> | 1449 | </state> |
1608 | </provider> | 1450 | </provider> |
1609 | </entry> | 1451 | </entry> |
1610 | - <entry file="file://$APPLICATION_HOME_DIR$/plugins/JavaScriptLanguage/jsLanguageServicesImpl/external/browser.d.ts"> | 1452 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkHeader/mapper/CheckHeaderMapper.java"> |
1611 | <provider selected="true" editor-type-id="text-editor"> | 1453 | <provider selected="true" editor-type-id="text-editor"> |
1612 | - <state relative-caret-position="240"> | ||
1613 | - <caret line="46" column="7" selection-start-line="46" selection-start-column="7" selection-end-line="46" selection-end-column="7" /> | 1454 | + <state relative-caret-position="209"> |
1455 | + <caret line="12" column="1" lean-forward="true" selection-start-line="12" selection-start-column="1" selection-end-line="12" selection-end-column="1" /> | ||
1614 | </state> | 1456 | </state> |
1615 | </provider> | 1457 | </provider> |
1616 | </entry> | 1458 | </entry> |
1617 | - <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryTransaction/report.html"> | 1459 | + <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/system/ConfigMapper.xml"> |
1618 | <provider selected="true" editor-type-id="text-editor"> | 1460 | <provider selected="true" editor-type-id="text-editor"> |
1619 | - <state relative-caret-position="665"> | ||
1620 | - <caret line="47" column="29" lean-forward="true" selection-start-line="47" selection-start-column="29" selection-end-line="47" selection-end-column="29" /> | ||
1621 | - <folding> | ||
1622 | - <element signature="n#style#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1623 | - <element signature="n#style#0;n#span#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1624 | - <element signature="n#style#0;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1625 | - <element signature="n#style#0;n#td#1;n#tr#2;n#tbody#0;n#table#0;n#div#0;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1626 | - </folding> | 1461 | + <state relative-caret-position="251"> |
1462 | + <caret line="71" column="73" lean-forward="true" selection-start-line="71" selection-start-column="73" selection-end-line="71" selection-end-column="73" /> | ||
1627 | </state> | 1463 | </state> |
1628 | </provider> | 1464 | </provider> |
1629 | </entry> | 1465 | </entry> |
1630 | - <entry file="file://$PROJECT_DIR$/src/main/resources/templates/config/location/print.html"> | 1466 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/mobile/download/ApkInfo.java"> |
1631 | <provider selected="true" editor-type-id="text-editor"> | 1467 | <provider selected="true" editor-type-id="text-editor"> |
1632 | - <state relative-caret-position="146"> | ||
1633 | - <caret line="113" lean-forward="true" selection-start-line="113" selection-end-line="113" /> | 1468 | + <state relative-caret-position="171"> |
1469 | + <caret line="9" column="23" lean-forward="true" selection-start-line="9" selection-start-column="23" selection-end-line="9" selection-end-column="23" /> | ||
1634 | </state> | 1470 | </state> |
1635 | </provider> | 1471 | </provider> |
1636 | </entry> | 1472 | </entry> |
1637 | - <entry file="file://$PROJECT_DIR$/src/main/resources/templates/config/location/location.html"> | 1473 | + <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/config/WarehouseMapper.xml"> |
1638 | <provider selected="true" editor-type-id="text-editor"> | 1474 | <provider selected="true" editor-type-id="text-editor"> |
1639 | - <state relative-caret-position="285"> | ||
1640 | - <caret line="75" column="45" selection-start-line="75" selection-start-column="45" selection-end-line="75" selection-end-column="45" /> | 1475 | + <state relative-caret-position="1380"> |
1476 | + <caret line="144" column="34" lean-forward="true" selection-start-line="144" selection-start-column="34" selection-end-line="144" selection-end-column="34" /> | ||
1641 | </state> | 1477 | </state> |
1642 | </provider> | 1478 | </provider> |
1643 | </entry> | 1479 | </entry> |
1644 | - <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryTransaction/inventoryTransaction.html"> | 1480 | + <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/config/ZoneMapper.xml"> |
1645 | <provider selected="true" editor-type-id="text-editor"> | 1481 | <provider selected="true" editor-type-id="text-editor"> |
1646 | - <state relative-caret-position="179"> | ||
1647 | - <caret line="310" selection-start-line="310" selection-end-line="322" selection-end-column="10" /> | 1482 | + <state relative-caret-position="189"> |
1483 | + <caret line="32" lean-forward="true" selection-start-line="32" selection-end-line="32" /> | ||
1648 | </state> | 1484 | </state> |
1649 | </provider> | 1485 | </provider> |
1650 | </entry> | 1486 | </entry> |
1651 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/controller/InventoryTransactionController.java"> | 1487 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/zone/mapper/ZoneMapper.java"> |
1652 | <provider selected="true" editor-type-id="text-editor"> | 1488 | <provider selected="true" editor-type-id="text-editor"> |
1653 | - <state relative-caret-position="241"> | ||
1654 | - <caret line="105" column="28" lean-forward="true" selection-start-line="105" selection-start-column="28" selection-end-line="105" selection-end-column="28" /> | 1489 | + <state relative-caret-position="133"> |
1490 | + <caret line="9" column="44" lean-forward="true" selection-start-line="9" selection-start-column="17" selection-end-line="9" selection-end-column="44" /> | ||
1655 | </state> | 1491 | </state> |
1656 | </provider> | 1492 | </provider> |
1657 | </entry> | 1493 | </entry> |
1658 | - <entry file="file://$USER_HOME$/Desktop/demo.html"> | 1494 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/common/mapper/ApkMapper.java"> |
1659 | <provider selected="true" editor-type-id="text-editor"> | 1495 | <provider selected="true" editor-type-id="text-editor"> |
1660 | - <state relative-caret-position="19"> | ||
1661 | - <caret line="1" column="6" lean-forward="true" selection-start-line="1" selection-start-column="6" selection-end-line="1" selection-end-column="6" /> | 1496 | + <state relative-caret-position="167"> |
1497 | + <caret line="16" column="8" selection-start-line="16" selection-start-column="8" selection-end-line="16" selection-end-column="8" /> | ||
1662 | </state> | 1498 | </state> |
1663 | </provider> | 1499 | </provider> |
1664 | </entry> | 1500 | </entry> |
1665 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/controller/LocationController.java"> | 1501 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/system/config/mapper/ConfigMapper.java"> |
1666 | <provider selected="true" editor-type-id="text-editor"> | 1502 | <provider selected="true" editor-type-id="text-editor"> |
1667 | - <state relative-caret-position="208"> | ||
1668 | - <caret line="317" column="50" lean-forward="true" selection-start-line="317" selection-start-column="50" selection-end-line="317" selection-end-column="50" /> | 1503 | + <state relative-caret-position="164"> |
1504 | + <caret line="40" column="17" lean-forward="true" selection-start-line="40" selection-start-column="17" selection-end-line="40" selection-end-column="17" /> | ||
1669 | </state> | 1505 | </state> |
1670 | </provider> | 1506 | </provider> |
1671 | </entry> | 1507 | </entry> |
1672 | - <entry file="file://$PROJECT_DIR$/src/main/resources/templates/config/material/material.html"> | 1508 | + <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/download/DownloadMapper.xml"> |
1673 | <provider selected="true" editor-type-id="text-editor"> | 1509 | <provider selected="true" editor-type-id="text-editor"> |
1674 | - <state relative-caret-position="-3041"> | ||
1675 | - <caret line="67" column="12" selection-start-line="67" selection-start-column="12" selection-end-line="67" selection-end-column="12" /> | 1510 | + <state relative-caret-position="114"> |
1511 | + <caret line="6" column="4" selection-start-line="6" selection-start-column="4" selection-end-line="6" selection-end-column="4" /> | ||
1676 | </state> | 1512 | </state> |
1677 | </provider> | 1513 | </provider> |
1678 | </entry> | 1514 | </entry> |
1679 | - <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/controller/MaterialController.java"> | 1515 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/mobile/download/ApkController.java"> |
1680 | <provider selected="true" editor-type-id="text-editor"> | 1516 | <provider selected="true" editor-type-id="text-editor"> |
1681 | - <state relative-caret-position="113"> | ||
1682 | - <caret line="193" column="28" lean-forward="true" selection-start-line="193" selection-start-column="28" selection-end-line="193" selection-end-column="28" /> | 1517 | + <state relative-caret-position="1381"> |
1518 | + <caret line="86" column="13" lean-forward="true" selection-start-line="86" selection-start-column="13" selection-end-line="86" selection-end-column="13" /> | ||
1519 | + <folding> | ||
1520 | + <element signature="imports" expanded="true" /> | ||
1521 | + </folding> | ||
1683 | </state> | 1522 | </state> |
1684 | </provider> | 1523 | </provider> |
1685 | </entry> | 1524 | </entry> |
1686 | - <entry file="file://$PROJECT_DIR$/src/main/resources/templates/config/material/print.html"> | 1525 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/mobile/receipt/MobileBatchReceiptController.java"> |
1687 | <provider selected="true" editor-type-id="text-editor"> | 1526 | <provider selected="true" editor-type-id="text-editor"> |
1688 | - <state relative-caret-position="133"> | ||
1689 | - <caret line="64" column="29" lean-forward="true" selection-start-line="64" selection-start-column="29" selection-end-line="64" selection-end-column="29" /> | ||
1690 | - <folding> | ||
1691 | - <element signature="n#style#0;n#input#0;n#td#1;n#tr#4;n#tbody#0;n#table#0;n#div#0;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1692 | - <element signature="n#style#0;n#input#0;n#td#1;n#tr#4;n#tbody#0;n#table#0;n#div#0;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" /> | ||
1693 | - </folding> | 1527 | + <state relative-caret-position="-1234"> |
1528 | + <caret line="404" column="51" selection-start-line="404" selection-start-column="40" selection-end-line="404" selection-end-column="51" /> | ||
1694 | </state> | 1529 | </state> |
1695 | </provider> | 1530 | </provider> |
1696 | </entry> | 1531 | </entry> |
src/main/java/com/huaheng/api/general/controller/AdjustApi.java
0 → 100644
1 | +package com.huaheng.api.general.controller; | ||
2 | + | ||
3 | + | ||
4 | +import com.huaheng.api.general.domain.AdjustDomain; | ||
5 | +import com.huaheng.api.general.domain.CycCountDomain; | ||
6 | +import com.huaheng.api.general.service.AdjustService; | ||
7 | +import com.huaheng.api.general.service.CycleCountService; | ||
8 | +import com.huaheng.framework.aspectj.lang.annotation.Log; | ||
9 | +import com.huaheng.framework.aspectj.lang.constant.BusinessType; | ||
10 | +import com.huaheng.framework.web.domain.AjaxResult; | ||
11 | +import io.swagger.annotations.Api; | ||
12 | +import io.swagger.annotations.ApiOperation; | ||
13 | +import org.springframework.web.bind.annotation.*; | ||
14 | + | ||
15 | +import javax.annotation.Resource; | ||
16 | + | ||
17 | +@RestController | ||
18 | +@RequestMapping("/api/adjustApi") | ||
19 | +@Api(tags = {"adjust"}, description = "调整单接口") | ||
20 | +public class AdjustApi { | ||
21 | + | ||
22 | + @Resource | ||
23 | + private AdjustService adjustService; | ||
24 | + | ||
25 | + | ||
26 | + /** | ||
27 | + * 同步调整单 | ||
28 | + */ | ||
29 | + @Log(title = "调整单添加", action = BusinessType.INSERT) | ||
30 | + @PostMapping("/adjust") | ||
31 | + @ApiOperation("调整单添加公共接口") | ||
32 | + @ResponseBody | ||
33 | + public AjaxResult adjust(@RequestBody AdjustDomain adjustDomain) | ||
34 | + { | ||
35 | + AjaxResult ajaxResult = adjustService.insertAdjust(adjustDomain); | ||
36 | + return ajaxResult; | ||
37 | + } | ||
38 | + | ||
39 | +} |
src/main/java/com/huaheng/api/general/controller/CycleCountApi.java
0 → 100644
1 | +package com.huaheng.api.general.controller; | ||
2 | + | ||
3 | + | ||
4 | +import com.huaheng.api.general.domain.CycCountDomain; | ||
5 | +import com.huaheng.api.general.domain.ReceiptDomain; | ||
6 | +import com.huaheng.api.general.service.CycleCountService; | ||
7 | +import com.huaheng.api.general.service.ReceiptApiService; | ||
8 | +import com.huaheng.framework.aspectj.lang.annotation.Log; | ||
9 | +import com.huaheng.framework.aspectj.lang.constant.BusinessType; | ||
10 | +import com.huaheng.framework.web.domain.AjaxResult; | ||
11 | +import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader; | ||
12 | +import com.huaheng.pc.inventory.cycleCountHeader.service.CycleCountHeaderService; | ||
13 | +import io.swagger.annotations.Api; | ||
14 | +import io.swagger.annotations.ApiOperation; | ||
15 | +import org.springframework.web.bind.annotation.*; | ||
16 | + | ||
17 | +import javax.annotation.Resource; | ||
18 | + | ||
19 | +@RestController | ||
20 | +@RequestMapping("/api/cycleCountApi") | ||
21 | +@Api(tags = {"cycleCount"}, description = "盘点单接口") | ||
22 | +public class CycleCountApi { | ||
23 | + | ||
24 | + @Resource | ||
25 | + private CycleCountService cycleCountService; | ||
26 | + | ||
27 | + | ||
28 | + /** | ||
29 | + * 同步盘点单 | ||
30 | + */ | ||
31 | + @Log(title = "盘点单添加", action = BusinessType.INSERT) | ||
32 | + @PostMapping("/adjust") | ||
33 | + @ApiOperation("盘点单添加公共接口") | ||
34 | + @ResponseBody | ||
35 | + public AjaxResult cycleCount(@RequestBody CycCountDomain cycCountDomain) | ||
36 | + { | ||
37 | + AjaxResult ajaxResult = cycleCountService.insertCycleCount(cycCountDomain); | ||
38 | + return ajaxResult; | ||
39 | + } | ||
40 | + | ||
41 | +} |
src/main/java/com/huaheng/api/general/controller/ReceiptApi.java
@@ -3,11 +3,14 @@ package com.huaheng.api.general.controller; | @@ -3,11 +3,14 @@ package com.huaheng.api.general.controller; | ||
3 | 3 | ||
4 | import com.huaheng.api.general.domain.ReceiptDomain; | 4 | import com.huaheng.api.general.domain.ReceiptDomain; |
5 | import com.huaheng.api.general.service.ReceiptApiService; | 5 | import com.huaheng.api.general.service.ReceiptApiService; |
6 | +import com.huaheng.common.utils.StringUtils; | ||
6 | import com.huaheng.framework.aspectj.lang.annotation.Log; | 7 | import com.huaheng.framework.aspectj.lang.annotation.Log; |
7 | import com.huaheng.framework.aspectj.lang.constant.BusinessType; | 8 | import com.huaheng.framework.aspectj.lang.constant.BusinessType; |
8 | import com.huaheng.framework.web.domain.AjaxResult; | 9 | import com.huaheng.framework.web.domain.AjaxResult; |
9 | import io.swagger.annotations.Api; | 10 | import io.swagger.annotations.Api; |
10 | import io.swagger.annotations.ApiOperation; | 11 | import io.swagger.annotations.ApiOperation; |
12 | +import io.swagger.annotations.ApiParam; | ||
13 | +import org.apache.shiro.authz.annotation.RequiresPermissions; | ||
11 | import org.springframework.web.bind.annotation.*; | 14 | import org.springframework.web.bind.annotation.*; |
12 | 15 | ||
13 | import javax.annotation.Resource; | 16 | import javax.annotation.Resource; |
@@ -34,4 +37,18 @@ public class ReceiptApi { | @@ -34,4 +37,18 @@ public class ReceiptApi { | ||
34 | return ajaxResult; | 37 | return ajaxResult; |
35 | } | 38 | } |
36 | 39 | ||
40 | + | ||
41 | + /** | ||
42 | + * 取消入库单 | ||
43 | + */ | ||
44 | + @Log(title = "入库-入库单 ",operating = "入库单删除", action = BusinessType.UPDATE) | ||
45 | + @PostMapping("/remove") | ||
46 | + @ResponseBody | ||
47 | + public AjaxResult remove(@RequestBody Integer[] ids){ | ||
48 | + if (StringUtils.isNull(ids)){ | ||
49 | + return AjaxResult.error("id为空"); | ||
50 | + } | ||
51 | + return receiptApiService.add(ids); | ||
52 | + } | ||
53 | + | ||
37 | } | 54 | } |
src/main/java/com/huaheng/api/general/controller/ReceiptController.java deleted
1 | -package com.huaheng.api.general.controller; | ||
2 | - | ||
3 | -import com.huaheng.api.general.domain.Receipt; | ||
4 | -import com.huaheng.api.general.service.ReceiptService; | ||
5 | -import com.huaheng.framework.aspectj.lang.annotation.Log; | ||
6 | -import com.huaheng.framework.aspectj.lang.constant.BusinessType; | ||
7 | -import com.huaheng.framework.web.domain.AjaxResult; | ||
8 | -import io.swagger.annotations.Api; | ||
9 | -import io.swagger.annotations.ApiOperation; | ||
10 | -import org.springframework.web.bind.annotation.*; | ||
11 | - | ||
12 | -import javax.annotation.Resource; | ||
13 | - | ||
14 | -/** | ||
15 | - * Created by Enzo Cotter on 2019/11/4. | ||
16 | - * @author mahuandong | ||
17 | - */ | ||
18 | -@RestController | ||
19 | -@RequestMapping("/api/receipt") | ||
20 | -@Api(tags = {"basicData"}, description = "入库接口") | ||
21 | -public class ReceiptController { | ||
22 | - | ||
23 | - @Resource | ||
24 | - private ReceiptService receiptService; | ||
25 | - | ||
26 | - /** | ||
27 | - * 入库单下发 | ||
28 | - */ | ||
29 | - @Log(title = "入库单下发", action = BusinessType.INSERT) | ||
30 | - @PostMapping("/insertReceipt") | ||
31 | - @ApiOperation("入库单下发接口") | ||
32 | - @ResponseBody | ||
33 | - public AjaxResult MaterialApi(@RequestBody Receipt receipt) { | ||
34 | - System.out.println("————————开始接收入库单——————————"); | ||
35 | - System.out.println(receipt); | ||
36 | - AjaxResult ajaxResult = receiptService.insertReceipt(receipt); | ||
37 | - return ajaxResult; | ||
38 | - } | ||
39 | - | ||
40 | -} |
src/main/java/com/huaheng/api/general/domain/AdjustDomain.java
0 → 100644
1 | +package com.huaheng.api.general.domain; | ||
2 | + | ||
3 | +import com.huaheng.pc.inventory.adjustDetail.domain.AdjustDetail; | ||
4 | +import com.huaheng.pc.inventory.adjustHeader.domain.AdjustHeader; | ||
5 | +import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader; | ||
6 | +import lombok.Data; | ||
7 | + | ||
8 | +import java.util.List; | ||
9 | + | ||
10 | +@Data | ||
11 | +public class AdjustDomain { | ||
12 | + private AdjustHeader adjustHeader; | ||
13 | + private List<AdjustDetail> adjustDetailList; | ||
14 | +} |
src/main/java/com/huaheng/api/general/domain/CycCountDomain.java
0 → 100644
1 | +package com.huaheng.api.general.domain; | ||
2 | + | ||
3 | +import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader; | ||
4 | +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; | ||
5 | +import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader; | ||
6 | +import lombok.Data; | ||
7 | + | ||
8 | +import java.util.List; | ||
9 | +import java.util.Map; | ||
10 | + | ||
11 | +@Data | ||
12 | +public class CycCountDomain { | ||
13 | + private CycleCountHeader cycleCountHeader; | ||
14 | + private Integer[] inventoryId; | ||
15 | +} |
src/main/java/com/huaheng/api/general/domain/Receipt.java deleted
1 | -package com.huaheng.api.general.domain; | ||
2 | - | ||
3 | -import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; | ||
4 | -import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; | ||
5 | -import lombok.Data; | ||
6 | - | ||
7 | -import java.util.List; | ||
8 | - | ||
9 | -/** | ||
10 | - * Created by Enzo Cotter on 2019/11/4. | ||
11 | - * @author mahuandong | ||
12 | - */ | ||
13 | -@Data | ||
14 | -public class Receipt { | ||
15 | - | ||
16 | - private ReceiptHeader receiptHeader; | ||
17 | - | ||
18 | - private List<ReceiptDetail> receiptDetails; | ||
19 | -} |
src/main/java/com/huaheng/api/general/service/AdjustService.java
0 → 100644
1 | +package com.huaheng.api.general.service; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||
4 | +import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||
5 | +import com.huaheng.api.general.domain.AdjustDomain; | ||
6 | +import com.huaheng.api.general.domain.CycCountDomain; | ||
7 | +import com.huaheng.common.constant.QuantityConstant; | ||
8 | +import com.huaheng.common.exception.service.ServiceException; | ||
9 | +import com.huaheng.common.utils.StringUtils; | ||
10 | +import com.huaheng.common.utils.security.ShiroUtils; | ||
11 | +import com.huaheng.framework.web.domain.AjaxResult; | ||
12 | +import com.huaheng.pc.check.checkDetail.domain.CheckDetail; | ||
13 | +import com.huaheng.pc.check.checkDetail.service.CheckDetailService; | ||
14 | +import com.huaheng.pc.config.configValue.domain.ConfigValue; | ||
15 | +import com.huaheng.pc.config.configValue.service.ConfigValueService; | ||
16 | +import com.huaheng.pc.config.cycleCountPreference.service.CycleCountPreferenceService; | ||
17 | +import com.huaheng.pc.config.location.service.LocationService; | ||
18 | +import com.huaheng.pc.config.material.domain.Material; | ||
19 | +import com.huaheng.pc.config.material.service.MaterialService; | ||
20 | +import com.huaheng.pc.inventory.adjustDetail.domain.AdjustDetail; | ||
21 | +import com.huaheng.pc.inventory.adjustDetail.service.AdjustDetailService; | ||
22 | +import com.huaheng.pc.inventory.adjustHeader.domain.AdjustHeader; | ||
23 | +import com.huaheng.pc.inventory.adjustHeader.mapper.AdjustHeaderMapper; | ||
24 | +import com.huaheng.pc.inventory.adjustHeader.service.AdjustHeaderService; | ||
25 | +import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail; | ||
26 | +import com.huaheng.pc.inventory.cycleCountDetail.service.CycleCountDetailService; | ||
27 | +import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader; | ||
28 | +import com.huaheng.pc.inventory.cycleCountHeader.service.CycleCountHeaderService; | ||
29 | +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; | ||
30 | +import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; | ||
31 | +import com.huaheng.pc.task.taskDetail.service.TaskDetailService; | ||
32 | +import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; | ||
33 | +import org.springframework.stereotype.Component; | ||
34 | +import org.springframework.transaction.annotation.Transactional; | ||
35 | + | ||
36 | +import javax.annotation.Resource; | ||
37 | +import java.text.SimpleDateFormat; | ||
38 | +import java.util.ArrayList; | ||
39 | +import java.util.Date; | ||
40 | +import java.util.List; | ||
41 | + | ||
42 | +/** | ||
43 | + * Created by Enzo Cotter on 2019/11/4. | ||
44 | + * @author mahuandong | ||
45 | + */ | ||
46 | +@Component | ||
47 | +@Transactional(rollbackFor = Exception.class) | ||
48 | +public class AdjustService { | ||
49 | + | ||
50 | + @Resource | ||
51 | + private AdjustHeaderMapper adjustHeaderMapper; | ||
52 | + @Resource | ||
53 | + private AdjustDetailService adjustDetailService; | ||
54 | + @Resource | ||
55 | + private AdjustHeaderService adjustHeaderService; | ||
56 | + @Resource | ||
57 | + private InventoryDetailService inventoryDetailService; | ||
58 | + @Resource | ||
59 | + private CycleCountDetailService cycleCountDetailService; | ||
60 | + @Resource | ||
61 | + private CheckDetailService checkDetailService; | ||
62 | + @Resource | ||
63 | + private MaterialService materialService; | ||
64 | + /** | ||
65 | + * 调整单下发 | ||
66 | + * @param adjustDomain 调整单 | ||
67 | + * @return 是否下发成功 | ||
68 | + */ | ||
69 | + @Transactional(rollbackFor = Exception.class) | ||
70 | + public AjaxResult insertAdjust(AdjustDomain adjustDomain){ | ||
71 | + AdjustHeader adjustHeader =adjustDomain.getAdjustHeader(); | ||
72 | + | ||
73 | + List<AdjustDetail> adjustDetailList =adjustDomain.getAdjustDetailList(); | ||
74 | + | ||
75 | + if (adjustHeader==null || adjustDetailList==null){ | ||
76 | + return AjaxResult.error("主单据和单据明细信息不能为空"); | ||
77 | + } | ||
78 | + | ||
79 | + if (StringUtils.isEmpty(adjustDomain.getAdjustHeader().getProblemType())){ | ||
80 | + return AjaxResult.error("调整类型不能为空"); | ||
81 | + } | ||
82 | + if (StringUtils.isEmpty(adjustDomain.getAdjustHeader().getWarehouseCode())){ | ||
83 | + return AjaxResult.error("仓库编码不能为空"); | ||
84 | + } | ||
85 | + if (StringUtils.isEmpty(adjustDomain.getAdjustHeader().getCompanyCode())){ | ||
86 | + return AjaxResult.error("货主编码不能为空"); | ||
87 | + } | ||
88 | + AdjustHeader adjustHeaderCode= this.addSave(adjustDomain.getAdjustHeader()); | ||
89 | + | ||
90 | + //查询主单及加入仓库和货主,盘点,质检单编码 | ||
91 | + if(adjustHeaderCode == null){ | ||
92 | + return AjaxResult.error("没有对应的主单据!"); | ||
93 | + } | ||
94 | + List<AdjustDetail> adjustDetails =new ArrayList<>(); | ||
95 | + for (AdjustDetail detail:adjustDetailList) { | ||
96 | + detail.setWarehouseCode(adjustHeaderCode.getWarehouseCode()); | ||
97 | + detail.setAdjustCode(adjustHeaderCode.getCode()); | ||
98 | + detail.setCompanyCode(adjustHeaderCode.getCompanyCode()); | ||
99 | + detail.setCycleCountCode(adjustHeaderCode.getCycleCountCode()); | ||
100 | + detail.setCheckCode(adjustHeaderCode.getCheckCode()); | ||
101 | + this.addDetails(detail); | ||
102 | + adjustDetails.add(detail); | ||
103 | + | ||
104 | + } | ||
105 | + AdjustDomain adjustDomainAjax =new AdjustDomain(); | ||
106 | + adjustDomainAjax.setAdjustHeader(adjustHeaderCode); | ||
107 | + adjustDomainAjax.setAdjustDetailList(adjustDetails); | ||
108 | + | ||
109 | + return AjaxResult.success(adjustDomainAjax); | ||
110 | + } | ||
111 | + | ||
112 | + /** | ||
113 | + * 保存新增调整头 | ||
114 | + * @param adjustHeader | ||
115 | + * @return | ||
116 | + */ | ||
117 | + @Transactional | ||
118 | + public AdjustHeader addSave(AdjustHeader adjustHeader) { | ||
119 | + //校验调整类型 | ||
120 | + //盘点调整,质检调整需要和盘点和质检单据确认。 | ||
121 | + switch (adjustHeader.getProblemType()){ | ||
122 | + case "checkAdjust": //质检调整 | ||
123 | + if(StringUtils.isEmpty(adjustHeader.getCheckCode())){ | ||
124 | + throw new SecurityException("选择单据类型为质检调整时,质检单编码不能为空!"); | ||
125 | + } | ||
126 | + break; | ||
127 | + case "cyclecountAdjust": //盘点调整 | ||
128 | + if(StringUtils.isEmpty(adjustHeader.getCycleCountCode())){ | ||
129 | + throw new SecurityException("选择单据类型为盘点调整时,盘点单编码不能为空!"); | ||
130 | + } | ||
131 | + break; | ||
132 | + case "adjust": //普通调整 | ||
133 | + if(StringUtils.isEmpty(adjustHeader.getCycleCountCode())){ | ||
134 | + throw new SecurityException("选择单据类型为普通调整时,盘点单编码不能为空!"); | ||
135 | + } | ||
136 | + break; | ||
137 | + | ||
138 | + } | ||
139 | + | ||
140 | + adjustHeader.setCreated(new Date()); | ||
141 | + adjustHeader.setCreatedBy(ShiroUtils.getLoginName()); | ||
142 | + adjustHeader.setCode(this.createCode()); | ||
143 | + if (!adjustHeaderService.save(adjustHeader)){ | ||
144 | + throw new SecurityException("新增调整单失败!"); | ||
145 | + } | ||
146 | + return adjustHeader; | ||
147 | + } | ||
148 | + | ||
149 | + | ||
150 | + @Transactional | ||
151 | + public AjaxResult addDetails(AdjustDetail adjustDetail) { | ||
152 | + | ||
153 | + //查询主单据 | ||
154 | + AdjustHeader adjustHeader = new AdjustHeader(); | ||
155 | + adjustHeader.setCode(adjustDetail.getAdjustCode()); | ||
156 | + adjustHeader.setWarehouseCode(adjustDetail.getWarehouseCode()); | ||
157 | + adjustHeader.setCompanyCode(adjustDetail.getCompanyCode()); | ||
158 | + LambdaQueryWrapper<AdjustHeader> lambdaQueryWrapper = Wrappers.lambdaQuery(adjustHeader); | ||
159 | + adjustHeader = adjustHeaderService.getOne(lambdaQueryWrapper); | ||
160 | + //检查库存 | ||
161 | + if((adjustDetail.getInventoryDetailId()) != null){ | ||
162 | + InventoryDetail inventoryDetail = inventoryDetailService.getById(adjustDetail.getInventoryDetailId()); | ||
163 | + if(inventoryDetail == null){ | ||
164 | + return AjaxResult.error("没有该条库存明细"); | ||
165 | + } | ||
166 | + } | ||
167 | + //明细单据的上层单编码需要和主单一直,主单空值则不判断 | ||
168 | + if(StringUtils.isNotEmpty(adjustHeader.getCycleCountCode()) || StringUtils.isNotEmpty(adjustHeader.getCheckCode())){ | ||
169 | + adjustDetail.setCycleCountCode(adjustHeader.getCycleCountCode()); | ||
170 | + adjustDetail.setCheckCode(adjustHeader.getCheckCode()); | ||
171 | + } | ||
172 | + //检查盘点单 | ||
173 | + if(StringUtils.isNotEmpty(adjustDetail.getCycleCountCode())){ | ||
174 | + LambdaQueryWrapper<CycleCountDetail> queryCycleCountCode = Wrappers.lambdaQuery(); | ||
175 | + queryCycleCountCode.eq(CycleCountDetail::getCycleCountHeadCode,adjustDetail.getCycleCountCode()); | ||
176 | + CycleCountDetail cycleCountDetail = cycleCountDetailService.list(queryCycleCountCode).get(0); | ||
177 | + if(cycleCountDetail == null || !cycleCountDetail.getCycleCountHeadCode().equals(adjustDetail.getCycleCountCode())){ | ||
178 | + return AjaxResult.error("盘点单错误,请核对盘点单据!"); | ||
179 | + } | ||
180 | + } | ||
181 | + //检查质检单 | ||
182 | + if(StringUtils.isNotEmpty(adjustDetail.getCheckCode())){ | ||
183 | + CheckDetail checkDetail = checkDetailService.getById(adjustDetail.getCheckDetailId()); | ||
184 | + if(checkDetail == null || !checkDetail.getCheckCode().equals(adjustDetail.getCheckCode())){ | ||
185 | + return AjaxResult.error("质检单错误,请核对质检单据!"); | ||
186 | + } | ||
187 | + } | ||
188 | + //检查物料 | ||
189 | + Material material = materialService.findAllByCode(adjustDetail.getMaterialCode()); | ||
190 | + if(material == null){ | ||
191 | + return AjaxResult.error("物料编码错误!"); | ||
192 | + } | ||
193 | + | ||
194 | + adjustDetail.setProblemType(adjustHeader.getProblemType());//调整类型 | ||
195 | + adjustDetail.setMaterialUnit(material.getUnit()); | ||
196 | + adjustDetail.setMaterialSpec(material.getSpec()); | ||
197 | + adjustDetail.setCreated(new Date()); | ||
198 | + adjustDetail.setCreatedBy(ShiroUtils.getLoginName()); | ||
199 | + adjustDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); | ||
200 | + adjustDetail.setLastUpdated(new Date()); | ||
201 | + adjustDetailService.saveOrUpdate(adjustDetail); | ||
202 | + | ||
203 | + return AjaxResult.success("新增调整明细成功!"); | ||
204 | + } | ||
205 | + | ||
206 | + | ||
207 | + | ||
208 | + //生成差异单号 | ||
209 | + public String createCode() { | ||
210 | + String code; | ||
211 | + Date now = new Date(); | ||
212 | + SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd"); | ||
213 | + String maxCode = adjustHeaderMapper.getLastCode();; | ||
214 | + //如果指定类型的最后的code存在,并且日期一致。那么 code = 单类型 + 年月日 + (排序号 + 1) | ||
215 | + if (maxCode != null && maxCode.substring(maxCode.length() - 13, maxCode.length() - 5).equals(df.format(now))) | ||
216 | + { | ||
217 | + Integer Count = Integer.valueOf(maxCode.substring(maxCode.length() - 5, maxCode.length())); | ||
218 | + code = "AD" + df.format(now) + String.format("%05d", Count + 1); | ||
219 | + } | ||
220 | + else | ||
221 | + { | ||
222 | + code = "AD" + df.format(now) + "00001"; | ||
223 | + } | ||
224 | + return code; | ||
225 | + } | ||
226 | + | ||
227 | +} |
src/main/java/com/huaheng/api/general/service/CycleCountService.java
0 → 100644
1 | +package com.huaheng.api.general.service; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||
4 | +import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||
5 | +import com.huaheng.api.general.domain.CycCountDomain; | ||
6 | +import com.huaheng.common.constant.QuantityConstant; | ||
7 | +import com.huaheng.common.exception.service.ServiceException; | ||
8 | +import com.huaheng.common.utils.StringUtils; | ||
9 | +import com.huaheng.common.utils.security.ShiroUtils; | ||
10 | +import com.huaheng.framework.web.domain.AjaxResult; | ||
11 | +import com.huaheng.pc.config.configValue.domain.ConfigValue; | ||
12 | +import com.huaheng.pc.config.configValue.service.ConfigValueService; | ||
13 | +import com.huaheng.pc.config.cycleCountPreference.service.CycleCountPreferenceService; | ||
14 | +import com.huaheng.pc.config.location.service.LocationService; | ||
15 | +import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail; | ||
16 | +import com.huaheng.pc.inventory.cycleCountDetail.service.CycleCountDetailService; | ||
17 | +import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader; | ||
18 | +import com.huaheng.pc.inventory.cycleCountHeader.service.CycleCountHeaderService; | ||
19 | +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; | ||
20 | +import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; | ||
21 | +import com.huaheng.pc.task.taskDetail.service.TaskDetailService; | ||
22 | +import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; | ||
23 | +import org.springframework.stereotype.Component; | ||
24 | +import org.springframework.transaction.annotation.Transactional; | ||
25 | + | ||
26 | +import javax.annotation.Resource; | ||
27 | +import java.util.ArrayList; | ||
28 | +import java.util.Date; | ||
29 | +import java.util.List; | ||
30 | + | ||
31 | +/** | ||
32 | + * Created by Enzo Cotter on 2019/11/4. | ||
33 | + * @author mahuandong | ||
34 | + */ | ||
35 | +@Component | ||
36 | +@Transactional(rollbackFor = Exception.class) | ||
37 | +public class CycleCountService { | ||
38 | + | ||
39 | + @Resource | ||
40 | + private CycleCountHeaderService cycleCountHeaderService; | ||
41 | + @Resource | ||
42 | + private CycleCountDetailService cycleCountDetailService; | ||
43 | + @Resource | ||
44 | + private InventoryDetailService inventoryDetailService; | ||
45 | + @Resource | ||
46 | + private LocationService locationService; | ||
47 | + @Resource | ||
48 | + private TaskHeaderService taskHeaderService; | ||
49 | + @Resource | ||
50 | + private TaskDetailService taskDetailService; | ||
51 | + @Resource | ||
52 | + private ConfigValueService configValueService; | ||
53 | + @Resource | ||
54 | + private CycleCountPreferenceService cycleCountPreferenceService; | ||
55 | + /** | ||
56 | + * 盘点单下发 | ||
57 | + * @param cycCountDomain 盘点单 | ||
58 | + * @return 是否下发成功 | ||
59 | + */ | ||
60 | + @Transactional(rollbackFor = Exception.class) | ||
61 | + public AjaxResult insertCycleCount(CycCountDomain cycCountDomain){ | ||
62 | + CycleCountHeader cycleCountHeader =cycCountDomain.getCycleCountHeader(); | ||
63 | + | ||
64 | + if (cycleCountHeader==null || cycCountDomain.getInventoryId()==null){ | ||
65 | + return AjaxResult.error("主单据或库存id不能为空"); | ||
66 | + } | ||
67 | + | ||
68 | + if (StringUtils.isEmpty(cycCountDomain.getCycleCountHeader().getCountType())){ | ||
69 | + return AjaxResult.error("盘点类型不能为空"); | ||
70 | + } | ||
71 | + if (StringUtils.isEmpty(cycleCountHeader.getWarehouseCode())){ | ||
72 | + return AjaxResult.error("仓库编码不能为空"); | ||
73 | + } | ||
74 | + if (StringUtils.isEmpty(cycleCountHeader.getCompanyCode())){ | ||
75 | + return AjaxResult.error("货主编码不能为空"); | ||
76 | + } | ||
77 | + | ||
78 | + cycleCountHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); | ||
79 | + cycleCountHeader.setCompanyCode(cycleCountHeader.getCompanyCode()); | ||
80 | + cycleCountHeader.setCreated(new Date()); | ||
81 | + cycleCountHeader.setCreatedBy(ShiroUtils.getLoginName()); | ||
82 | + cycleCountHeader.setCode(cycleCountHeaderService.createCode()); | ||
83 | + if (!cycleCountHeaderService.save(cycleCountHeader)){ | ||
84 | + return AjaxResult.error("新增盘点单失败"); | ||
85 | + } | ||
86 | + this.addDetails(cycleCountHeader.getCode(),cycCountDomain.getInventoryId()); | ||
87 | + | ||
88 | + return AjaxResult.success("成功"); | ||
89 | + } | ||
90 | + | ||
91 | + /** | ||
92 | + * 新增盘点明细 | ||
93 | + * */ | ||
94 | + @Transactional | ||
95 | + public AjaxResult addDetails(String cycleCountHeadCode, Integer[] inventoryDetailIdIds) { | ||
96 | + | ||
97 | + if(cycleCountHeadCode == null){ | ||
98 | + throw new ServiceException("盘点主单编码不能为空!"); | ||
99 | + } | ||
100 | + CycleCountHeader cyclecountHeader =new CycleCountHeader(); | ||
101 | + cyclecountHeader.setCode(cycleCountHeadCode); | ||
102 | + LambdaQueryWrapper<CycleCountHeader> ch = Wrappers.lambdaQuery(cyclecountHeader); | ||
103 | + cyclecountHeader = cycleCountHeaderService.getOne(ch); | ||
104 | + //可能存在并发删除的情况 | ||
105 | + if(cyclecountHeader==null){ | ||
106 | + return AjaxResult.error("盘点主单据不存在"); | ||
107 | + } | ||
108 | + if(cyclecountHeader.getStatusCyc() > QuantityConstant.CYCLECOUNT_STATUS_BUILD){ | ||
109 | + return AjaxResult.error("盘点单非新建状态,无法再添加明细"); | ||
110 | + } | ||
111 | + //默认盘点配置,首选项 | ||
112 | + ConfigValue configValue = new ConfigValue(); | ||
113 | + configValue.setModuleType("cyclecount"); | ||
114 | + configValue.setWarehouseCode(ShiroUtils.getWarehouseCode()); | ||
115 | + LambdaQueryWrapper<ConfigValue> configValueLambdaQueryWrapper = Wrappers.lambdaQuery(configValue); | ||
116 | + configValue = configValueService.getOne(configValueLambdaQueryWrapper); | ||
117 | + if(configValue == null){ | ||
118 | + throw new SecurityException("请先在配置中添加盘点配置"); | ||
119 | + } | ||
120 | + String preferenceCode = configValue.getIdentifier(); | ||
121 | + //获取已经存在的明细 | ||
122 | + CycleCountDetail cycleCountDetail = new CycleCountDetail(); | ||
123 | + cycleCountDetail.setWarehouseCode(cyclecountHeader.getWarehouseCode()); | ||
124 | + cycleCountDetail.setCompanyCode(cyclecountHeader.getCompanyCode()); | ||
125 | + cycleCountDetail.setCycleCountHeadCode(cyclecountHeader.getCode()); | ||
126 | + LambdaQueryWrapper<CycleCountDetail> cycleCountDetailLambd = Wrappers.lambdaQuery(cycleCountDetail); | ||
127 | + List<CycleCountDetail> cyclecountDetailList = cycleCountDetailService.list(cycleCountDetailLambd); | ||
128 | + if(cyclecountDetailList == null){ | ||
129 | + cyclecountDetailList = new ArrayList<>(); | ||
130 | + } | ||
131 | + for(int inventoryDetailId : inventoryDetailIdIds){ | ||
132 | + //当前有盘点明细时验证是否已经生成盘点细单,生成则跳出该条循环 | ||
133 | + if(cyclecountDetailList.stream().anyMatch(t -> t.getInventoryDetailId()!=null && t.getInventoryDetailId() == inventoryDetailId)){ | ||
134 | + continue; | ||
135 | + } | ||
136 | + //查询该条库存明细 | ||
137 | + InventoryDetail inventoryDetail = inventoryDetailService.getById(inventoryDetailId); | ||
138 | + //写入盘点明细 | ||
139 | + CycleCountDetail ccd = new CycleCountDetail(); | ||
140 | + ccd.setPreferenceCode(preferenceCode); | ||
141 | + ccd.setCycleCountHeadCode(cyclecountHeader.getCode()); | ||
142 | + ccd.setInventoryDetailId(inventoryDetailId); | ||
143 | + ccd.setWarehouseCode(inventoryDetail.getWarehouseCode()); | ||
144 | + ccd.setCompanyCode(inventoryDetail.getCompanyCode()); | ||
145 | + ccd.setInventorySts(inventoryDetail.getInventorySts()); | ||
146 | + ccd.setCountId(inventoryDetail.getId()); | ||
147 | + //ccd.setEnableStatus(1); | ||
148 | + ccd.setLocationCode(inventoryDetail.getLocationCode()); | ||
149 | + ccd.setContainerCode(inventoryDetail.getContainerCode()); | ||
150 | + ccd.setMaterialCode(inventoryDetail.getMaterialCode()); | ||
151 | + ccd.setMaterialName(inventoryDetail.getMaterialName()); | ||
152 | + ccd.setMaterialSpec(inventoryDetail.getMaterialSpec()); | ||
153 | + ccd.setMaterialUnit(inventoryDetail.getMaterialUnit()); | ||
154 | + ccd.setSystemQty(inventoryDetail.getQty()); | ||
155 | + ccd.setBatch(inventoryDetail.getBatch()); | ||
156 | + ccd.setLot(inventoryDetail.getLot()); | ||
157 | + ccd.setProjectNo(inventoryDetail.getProjectNo()); | ||
158 | + ccd.setCountedBy(cyclecountHeader.getCreatedBy()); | ||
159 | + ccd.setCountedAt(cyclecountHeader.getCreated()); | ||
160 | + ccd.setCreated(new Date()); | ||
161 | + ccd.setCreatedBy(ShiroUtils.getLoginName()); | ||
162 | + ccd.setLastUpdated(new Date()); | ||
163 | + ccd.setLastUpdatedBy(ShiroUtils.getLoginName()); | ||
164 | + cycleCountDetailService.save(ccd); | ||
165 | + //更新库存盘点锁 | ||
166 | + inventoryDetail.setLockCode("cyclecount"); | ||
167 | + inventoryDetailService.saveOrUpdate(inventoryDetail); | ||
168 | + } | ||
169 | + return AjaxResult.success("生成盘点明细成功"); | ||
170 | + } | ||
171 | + | ||
172 | +} |
src/main/java/com/huaheng/api/general/service/ReceiptApiService.java
@@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | @@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||
4 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | 4 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
5 | import com.huaheng.api.general.controller.ReceiptApi; | 5 | import com.huaheng.api.general.controller.ReceiptApi; |
6 | import com.huaheng.api.general.domain.ReceiptDomain; | 6 | import com.huaheng.api.general.domain.ReceiptDomain; |
7 | +import com.huaheng.common.constant.QuantityConstant; | ||
7 | import com.huaheng.common.exception.service.ServiceException; | 8 | import com.huaheng.common.exception.service.ServiceException; |
9 | +import com.huaheng.common.support.Convert; | ||
8 | import com.huaheng.common.utils.StringUtils; | 10 | import com.huaheng.common.utils.StringUtils; |
11 | +import com.huaheng.common.utils.security.ShiroUtils; | ||
9 | import com.huaheng.framework.web.domain.AjaxResult; | 12 | import com.huaheng.framework.web.domain.AjaxResult; |
10 | import com.huaheng.pc.config.FilterConfigDetail.domain.FilterConfigDetail; | 13 | import com.huaheng.pc.config.FilterConfigDetail.domain.FilterConfigDetail; |
11 | import com.huaheng.pc.config.FilterConfigDetail.service.FilterConfigDetailService; | 14 | import com.huaheng.pc.config.FilterConfigDetail.service.FilterConfigDetailService; |
@@ -23,14 +26,21 @@ import com.huaheng.pc.config.warehouse.domain.Warehouse; | @@ -23,14 +26,21 @@ import com.huaheng.pc.config.warehouse.domain.Warehouse; | ||
23 | import com.huaheng.pc.config.warehouse.service.WarehouseService; | 26 | import com.huaheng.pc.config.warehouse.service.WarehouseService; |
24 | import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; | 27 | import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; |
25 | import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService; | 28 | import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService; |
29 | +import com.huaheng.pc.receipt.receiptDetailHistory.domain.ReceiptDetailHistory; | ||
30 | +import com.huaheng.pc.receipt.receiptDetailHistory.service.ReceiptDetailHistoryService; | ||
26 | import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; | 31 | import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; |
27 | import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService; | 32 | import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService; |
33 | +import com.huaheng.pc.receipt.receiptHeaderHistory.domain.ReceiptHeaderHistory; | ||
34 | +import com.huaheng.pc.receipt.receiptHeaderHistory.service.ReceiptHeaderHistoryService; | ||
35 | +import org.apache.commons.beanutils.BeanUtils; | ||
28 | import org.springframework.stereotype.Component; | 36 | import org.springframework.stereotype.Component; |
29 | import org.springframework.transaction.annotation.Transactional; | 37 | import org.springframework.transaction.annotation.Transactional; |
30 | 38 | ||
31 | import javax.annotation.Resource; | 39 | import javax.annotation.Resource; |
40 | +import java.lang.reflect.InvocationTargetException; | ||
32 | import java.math.BigDecimal; | 41 | import java.math.BigDecimal; |
33 | import java.util.ArrayList; | 42 | import java.util.ArrayList; |
43 | +import java.util.Arrays; | ||
34 | import java.util.List; | 44 | import java.util.List; |
35 | 45 | ||
36 | @Component | 46 | @Component |
@@ -54,6 +64,10 @@ public class ReceiptApiService { | @@ -54,6 +64,10 @@ public class ReceiptApiService { | ||
54 | private FilterConfigDetailService filterConfigDetailService; | 64 | private FilterConfigDetailService filterConfigDetailService; |
55 | @Resource | 65 | @Resource |
56 | private StatusFlowHeaderService statusFlowHeaderService; | 66 | private StatusFlowHeaderService statusFlowHeaderService; |
67 | + @Resource | ||
68 | + private ReceiptHeaderHistoryService receiptHeaderHistoryService; | ||
69 | + @Resource | ||
70 | + private ReceiptDetailHistoryService receiptDetailHistoryService; | ||
57 | /** | 71 | /** |
58 | * 入库单下发 | 72 | * 入库单下发 |
59 | * @param receipt 入库单 | 73 | * @param receipt 入库单 |
@@ -218,4 +232,65 @@ public class ReceiptApiService { | @@ -218,4 +232,65 @@ public class ReceiptApiService { | ||
218 | 232 | ||
219 | return AjaxResult.success(""); | 233 | return AjaxResult.success(""); |
220 | } | 234 | } |
235 | + | ||
236 | + | ||
237 | + @Transactional | ||
238 | + public AjaxResult add(Integer[] ids){ | ||
239 | + List<Integer> idList = Arrays.asList(ids); | ||
240 | + for (Integer id : idList) { | ||
241 | + ReceiptHeader receiptHeader = receiptHeaderService.getById(id); | ||
242 | + if (receiptHeader == null) { | ||
243 | + return AjaxResult.success(""); | ||
244 | + } | ||
245 | + if((receiptHeader.getFirstStatus()>= QuantityConstant.RECEIPT_HEADER_POSTING && receiptHeader.getLastStatus()>=QuantityConstant.RECEIPT_HEADER_POSTING)|| | ||
246 | + (receiptHeader.getFirstStatus()<QuantityConstant.RECEIPT_HEADER_POOL &receiptHeader.getLastStatus()<QuantityConstant.RECEIPT_HEADER_POOL)){ | ||
247 | + ReceiptHeaderHistory receiptHeaderHistory = new ReceiptHeaderHistory(); | ||
248 | + List<ReceiptDetailHistory> receiptDetailHistoryList = new ArrayList<>(); | ||
249 | + //查询入库单明细 | ||
250 | + LambdaQueryWrapper<ReceiptDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); | ||
251 | + lambdaQueryWrapper.eq(ReceiptDetail::getReceiptId, id); | ||
252 | + List<ReceiptDetail> list = receiptDetailService.list(lambdaQueryWrapper); | ||
253 | + try { | ||
254 | + //复制到入库历史实体 | ||
255 | + BeanUtils.copyProperties(receiptHeaderHistory, receiptHeader); | ||
256 | + for (ReceiptDetail receiptDetail: list) { | ||
257 | + ReceiptDetailHistory receiptDetailHistory = new ReceiptDetailHistory(); | ||
258 | + BeanUtils.copyProperties(receiptDetailHistory, receiptDetail); | ||
259 | + receiptDetailHistoryList.add(receiptDetailHistory); | ||
260 | + } | ||
261 | + } catch (IllegalAccessException e) { | ||
262 | + e.printStackTrace(); | ||
263 | + } catch (InvocationTargetException e) { | ||
264 | + e.printStackTrace(); | ||
265 | + } | ||
266 | + | ||
267 | + receiptHeaderHistory.setLastUpdatedBy(ShiroUtils.getLoginName()); | ||
268 | + if (!receiptHeaderService.removeById(receiptHeader.getId())){ | ||
269 | + throw new ServiceException("删除头表失败"); | ||
270 | + } | ||
271 | + if(!receiptHeaderHistoryService.save(receiptHeaderHistory)){ | ||
272 | + throw new ServiceException("新增历史入库单失败"); | ||
273 | + } | ||
274 | + // 当存在明细时删除 | ||
275 | + if (list.size()!= 0){ | ||
276 | + //删除入库明细 | ||
277 | + List<Integer> receiptDetailIds = new ArrayList<>(); | ||
278 | + for (int i=0; i<receiptDetailHistoryList.size();i++){ | ||
279 | + receiptDetailHistoryList.get(i).setLastUpdatedBy(ShiroUtils.getLoginName()); | ||
280 | + receiptDetailHistoryList.get(i).setReceiptId(receiptHeaderHistory.getId()); | ||
281 | + receiptDetailIds.add(receiptDetailHistoryList.get(i).getId()); | ||
282 | + } | ||
283 | + if (!receiptDetailService.removeByIds(receiptDetailIds)) { | ||
284 | + throw new ServiceException("删除明细表失败"); | ||
285 | + } | ||
286 | + if (!receiptDetailHistoryService.saveBatch(receiptDetailHistoryList)){ | ||
287 | + throw new ServiceException("新增明细失败"); | ||
288 | + } } | ||
289 | + | ||
290 | + }else { | ||
291 | + return AjaxResult.success("入库单没有完成,无法删除"); | ||
292 | + } | ||
293 | + } | ||
294 | + return AjaxResult.success("删除成功"); | ||
295 | + } | ||
221 | } | 296 | } |
src/main/java/com/huaheng/api/general/service/ReceiptService.java deleted
1 | -package com.huaheng.api.general.service; | ||
2 | - | ||
3 | -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||
4 | -import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||
5 | -import com.huaheng.api.general.domain.Receipt; | ||
6 | -import com.huaheng.common.exception.service.ServiceException; | ||
7 | -import com.huaheng.common.utils.StringUtils; | ||
8 | -import com.huaheng.framework.web.domain.AjaxResult; | ||
9 | -import com.huaheng.pc.config.FilterConfigDetail.domain.FilterConfigDetail; | ||
10 | -import com.huaheng.pc.config.FilterConfigDetail.service.FilterConfigDetailService; | ||
11 | -import com.huaheng.pc.config.company.domain.Company; | ||
12 | -import com.huaheng.pc.config.company.service.CompanyService; | ||
13 | -import com.huaheng.pc.config.material.domain.Material; | ||
14 | -import com.huaheng.pc.config.material.service.MaterialService; | ||
15 | -import com.huaheng.pc.config.receiptType.domain.ReceiptType; | ||
16 | -import com.huaheng.pc.config.receiptType.service.ReceiptTypeService; | ||
17 | -import com.huaheng.pc.config.statusFlow.domain.StatusFlowHeader; | ||
18 | -import com.huaheng.pc.config.statusFlow.service.StatusFlowHeaderService; | ||
19 | -import com.huaheng.pc.config.supplier.domain.Supplier; | ||
20 | -import com.huaheng.pc.config.supplier.service.SupplierService; | ||
21 | -import com.huaheng.pc.config.warehouse.domain.Warehouse; | ||
22 | -import com.huaheng.pc.config.warehouse.service.WarehouseService; | ||
23 | -import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; | ||
24 | -import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService; | ||
25 | -import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; | ||
26 | -import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService; | ||
27 | -import org.springframework.stereotype.Component; | ||
28 | -import org.springframework.transaction.annotation.Transactional; | ||
29 | - | ||
30 | -import javax.annotation.Resource; | ||
31 | -import java.math.BigDecimal; | ||
32 | -import java.util.List; | ||
33 | - | ||
34 | -/** | ||
35 | - * Created by Enzo Cotter on 2019/11/4. | ||
36 | - * @author mahuandong | ||
37 | - */ | ||
38 | -@Component | ||
39 | -@Transactional(rollbackFor = Exception.class) | ||
40 | -public class ReceiptService { | ||
41 | - | ||
42 | - @Resource | ||
43 | - private ReceiptHeaderService receiptHeaderService; | ||
44 | - @Resource | ||
45 | - private ReceiptDetailService receiptDetailService; | ||
46 | - @Resource | ||
47 | - private ReceiptTypeService receiptTypeService; | ||
48 | - @Resource | ||
49 | - private WarehouseService warehouseService; | ||
50 | - @Resource | ||
51 | - private CompanyService companyService; | ||
52 | - @Resource | ||
53 | - private MaterialService materialService; | ||
54 | - @Resource | ||
55 | - private SupplierService supplierService; | ||
56 | - @Resource | ||
57 | - private FilterConfigDetailService filterConfigDetailService; | ||
58 | - @Resource | ||
59 | - private StatusFlowHeaderService statusFlowHeaderService; | ||
60 | - /** | ||
61 | - * 入库单下发 | ||
62 | - * @param receipt 入库单 | ||
63 | - * @return 是否下发成功 | ||
64 | - */ | ||
65 | - @Transactional(rollbackFor = Exception.class) | ||
66 | - public AjaxResult insertReceipt(Receipt receipt){ | ||
67 | - | ||
68 | - /* 0.step 获取入库头表,获取入库明细*/ | ||
69 | - ReceiptHeader receiptHeader = receipt.getReceiptHeader(); | ||
70 | - List<ReceiptDetail> receiptDetails = receipt.getReceiptDetails(); | ||
71 | - /* 1.step 校验入库单是否为空*/ | ||
72 | - if (receiptHeader == null || receiptDetails.isEmpty()){ | ||
73 | - throw new ServiceException("入库主单或入库子单为空"); | ||
74 | - } | ||
75 | - /* 2.step 检查入库头表合法性*/ | ||
76 | - AjaxResult checkReceiptHeaderResult = checkReceiptHeader(receiptHeader); | ||
77 | - if (checkReceiptHeaderResult.hasErr() ){ | ||
78 | - return AjaxResult.error(checkReceiptHeaderResult.getMsg()); | ||
79 | - } | ||
80 | - | ||
81 | - /* 3.step 检查入库明细合法性*/ | ||
82 | - AjaxResult checkReceiptDetailResult = checkReceiptDetail(receiptDetails); | ||
83 | - if (checkReceiptDetailResult.hasErr() ){ | ||
84 | - return AjaxResult.error(checkReceiptDetailResult.getMsg()); | ||
85 | - } | ||
86 | - | ||
87 | - /* 4.step 计算入库明细总行数、总数量*/ | ||
88 | - BigDecimal totalQty = new BigDecimal(0); | ||
89 | - for (ReceiptDetail receiptDetail: receiptDetails) { | ||
90 | - totalQty.add(receiptDetail.getTotalQty()); | ||
91 | - } | ||
92 | - receiptHeader.setTotalLines(receiptDetails.size()); | ||
93 | - receiptHeader.setTotalQty(totalQty); | ||
94 | - | ||
95 | - /* 5.step 保存的入库头表*/ | ||
96 | - if (!receiptHeaderService.save(receiptHeader)){ | ||
97 | - throw new ServiceException("保存入库头表失败"); | ||
98 | - } | ||
99 | - | ||
100 | - /* 6.step 保存入库明细*/ | ||
101 | - LambdaQueryWrapper<ReceiptHeader> lambda = Wrappers.lambdaQuery(); | ||
102 | - lambda.eq(ReceiptHeader::getWarehouseCode, receiptHeader.getWarehouseCode()) | ||
103 | - .eq(ReceiptHeader::getCode, receiptHeader.getCode()); | ||
104 | - receiptHeader = receiptHeaderService.getOne(lambda); | ||
105 | - for (ReceiptDetail receiptDetail : receiptDetails) { | ||
106 | - receiptDetail.setReceiptId(receiptHeader.getId()); | ||
107 | - receiptDetail.setReceiptCode(receiptHeader.getCode()); | ||
108 | - receiptDetail.setWarehouseCode(receiptHeader.getWarehouseCode()); | ||
109 | - receiptDetail.setCompanyCode(receiptHeader.getWarehouseCode()); | ||
110 | - Material material = materialService.findAllByCode(receiptDetail.getMaterialCode()); | ||
111 | - receiptDetail.setMaterialName(material.getName()); | ||
112 | - receiptDetail.setMaterialSpec(material.getSpec()); | ||
113 | - receiptDetail.setMaterialUnit(material.getUnit()); | ||
114 | - if (!receiptDetailService.save(receiptDetail)){ | ||
115 | - throw new ServiceException("保存入库明细失败"); | ||
116 | - } | ||
117 | - } | ||
118 | - | ||
119 | - return AjaxResult.success("成功"); | ||
120 | - } | ||
121 | - | ||
122 | - /** | ||
123 | - * 检查入库头表合法性 | ||
124 | - * @param receiptHeader 入库头表 | ||
125 | - * @return 检查结果 | ||
126 | - */ | ||
127 | - private AjaxResult checkReceiptHeader(ReceiptHeader receiptHeader){ | ||
128 | - /* 0.step 必填项是否为空*/ | ||
129 | - if (StringUtils.isEmpty(receiptHeader.getCode()) || StringUtils.isEmpty(receiptHeader.getCompanyCode()) || | ||
130 | - StringUtils.isEmpty(receiptHeader.getWarehouseCode()) || StringUtils.isEmpty(receiptHeader.getReceiptType())){ | ||
131 | - return AjaxResult.error("入库主单字段有误"); | ||
132 | - } | ||
133 | - | ||
134 | - /* 1.step 查询该单据编码是否已存在*/ | ||
135 | - LambdaQueryWrapper<ReceiptHeader> receiptHeaderLambda = Wrappers.lambdaQuery(receiptHeader); | ||
136 | - if (receiptHeaderService.getOne(receiptHeaderLambda) != null){ | ||
137 | - return AjaxResult.error("该单据已存在:"+receiptHeader.getCode()); | ||
138 | - } | ||
139 | - | ||
140 | - /* 2.step 判断入库类型是否匹配*/ | ||
141 | - LambdaQueryWrapper<ReceiptType> receiptTypeLambda = Wrappers.lambdaQuery(); | ||
142 | - receiptTypeLambda.eq(ReceiptType::getCode, receiptHeader.getReceiptType()); | ||
143 | - if (receiptTypeService.getOne(receiptTypeLambda) == null){ | ||
144 | - return AjaxResult.error("没有对应的入库单类型"); | ||
145 | - } | ||
146 | - | ||
147 | - /* 3.step 判断仓库是否存在*/ | ||
148 | - LambdaQueryWrapper<Warehouse> warehouseLambda = Wrappers.lambdaQuery(); | ||
149 | - warehouseLambda.eq(Warehouse::getCode, receiptHeader.getWarehouseCode()); | ||
150 | - if (warehouseService.getOne(warehouseLambda) == null){ | ||
151 | - return AjaxResult.error("该仓库不存在"); | ||
152 | - } | ||
153 | - | ||
154 | - /* 4.step 判断货主是否存在*/ | ||
155 | - LambdaQueryWrapper<Company> companyLambda = Wrappers.lambdaQuery(); | ||
156 | - companyLambda.eq(Company::getCode, receiptHeader.getCompanyCode()); | ||
157 | - if (companyService.getOne(companyLambda) == null){ | ||
158 | - return AjaxResult.error("该货主不存在"); | ||
159 | - } | ||
160 | - | ||
161 | - return AjaxResult.success(""); | ||
162 | - } | ||
163 | - | ||
164 | - /** | ||
165 | - * 检查入库明细合法性 | ||
166 | - * @param receiptDetails 入库明细 | ||
167 | - * @return 检查结果 | ||
168 | - */ | ||
169 | - private AjaxResult checkReceiptDetail(List<ReceiptDetail> receiptDetails){ | ||
170 | - | ||
171 | - for (ReceiptDetail receiptDetail: receiptDetails) { | ||
172 | - /* 0.step 判断必填字段是否为空且总数量不能为0*/ | ||
173 | - if (receiptDetail.getMaterialCode() == null || | ||
174 | - new BigDecimal(0).compareTo(receiptDetail.getTotalQty() != null ? | ||
175 | - receiptDetail.getTotalQty() : new BigDecimal(0)) == 0 ){ | ||
176 | - return AjaxResult.error("入库明细字段有误"); | ||
177 | - } | ||
178 | - | ||
179 | - /* 1.step 判断供应商是否存在*/ | ||
180 | - if (receiptDetail.getSupplierCode() != null){ | ||
181 | - LambdaQueryWrapper<Supplier> supplierLambda = Wrappers.lambdaQuery(); | ||
182 | - supplierLambda.eq(Supplier::getCode, receiptDetail.getSupplierCode()); | ||
183 | - if (supplierService.getOne(supplierLambda) == null) { | ||
184 | - return AjaxResult.error("供应商不存在"); | ||
185 | - } | ||
186 | - } | ||
187 | - | ||
188 | - /* 2.step 判断定位规则是否存在*/ | ||
189 | - if (receiptDetail.getLocatingRule() != null){ | ||
190 | - LambdaQueryWrapper<FilterConfigDetail> filterConfigDetailLambda = Wrappers.lambdaQuery(); | ||
191 | - filterConfigDetailLambda.eq(FilterConfigDetail::getCode, receiptDetail.getLocatingRule()) | ||
192 | - .eq(FilterConfigDetail::getModuleType, "receipt") | ||
193 | - .eq(FilterConfigDetail::getRecordType, "locationRule"); | ||
194 | - FilterConfigDetail filterConfigDetail = filterConfigDetailService.getOne(filterConfigDetailLambda); | ||
195 | - if (filterConfigDetail == null){ | ||
196 | - return AjaxResult.error(receiptDetail.getLocatingRule()+"定位规则不存在"); | ||
197 | - } | ||
198 | - } | ||
199 | - | ||
200 | - /* 3.step 判断流程编码是否存在*/ | ||
201 | - if (receiptDetail.getStatusFlowCode() != null){ | ||
202 | - LambdaQueryWrapper<StatusFlowHeader> statusFlowHeaderLambda = Wrappers.lambdaQuery(); | ||
203 | - statusFlowHeaderLambda.eq(StatusFlowHeader::getCode, receiptDetail.getStatusFlowCode()) | ||
204 | - .eq(StatusFlowHeader::getModuleType, "receipt") | ||
205 | - .eq(StatusFlowHeader::getRecordType, "receivingFlow"); | ||
206 | - StatusFlowHeader statusFlowHeader = statusFlowHeaderService.getOne(statusFlowHeaderLambda); | ||
207 | - if (statusFlowHeader == null){ | ||
208 | - return AjaxResult.error(receiptDetail.getLocatingRule()+"该流程不存在"); | ||
209 | - } | ||
210 | - } | ||
211 | - } | ||
212 | - | ||
213 | - return AjaxResult.success(""); | ||
214 | - } | ||
215 | - | ||
216 | -} |
src/main/java/com/huaheng/framework/config/ShiroConfig.java
@@ -263,6 +263,7 @@ public class ShiroConfig | @@ -263,6 +263,7 @@ public class ShiroConfig | ||
263 | filterChainDefinitionMap.put("/admin/logout", "adminlogout"); | 263 | filterChainDefinitionMap.put("/admin/logout", "adminlogout"); |
264 | // 不需要拦截的访问 | 264 | // 不需要拦截的访问 |
265 | // filterChainDefinitionMap.put("/admin/home", "anon,captchaValidate"); | 265 | // filterChainDefinitionMap.put("/admin/home", "anon,captchaValidate"); |
266 | + filterChainDefinitionMap.put("/mobile/download/*", "anon,captchaValidate"); | ||
266 | filterChainDefinitionMap.put("/admin/login", "anon,captchaValidate"); | 267 | filterChainDefinitionMap.put("/admin/login", "anon,captchaValidate"); |
267 | filterChainDefinitionMap.put("/login", "anon,captchaValidate"); | 268 | filterChainDefinitionMap.put("/login", "anon,captchaValidate"); |
268 | filterChainDefinitionMap.put("/api/login", "anon,captchaValidate"); | 269 | filterChainDefinitionMap.put("/api/login", "anon,captchaValidate"); |
src/main/java/com/huaheng/mobile/download/ApkController.java
0 → 100644
1 | +package com.huaheng.mobile.download; | ||
2 | + | ||
3 | +import com.alibaba.fastjson.JSONException; | ||
4 | +import com.huaheng.framework.web.domain.AjaxResult; | ||
5 | +import com.huaheng.pc.common.mapper.ApkMapper; | ||
6 | +import io.swagger.annotations.ApiOperation; | ||
7 | +import org.springframework.web.bind.annotation.PostMapping; | ||
8 | +import org.springframework.web.bind.annotation.RequestBody; | ||
9 | +import org.springframework.web.bind.annotation.RequestMapping; | ||
10 | +import org.springframework.web.bind.annotation.RestController; | ||
11 | + | ||
12 | +import javax.annotation.Resource; | ||
13 | +import java.util.List; | ||
14 | +import java.util.Map; | ||
15 | + | ||
16 | +@RestController | ||
17 | +@RequestMapping("/mobile/download") | ||
18 | +public class ApkController { | ||
19 | + | ||
20 | + @Resource | ||
21 | + ApkMapper apkMapper; | ||
22 | + | ||
23 | + @PostMapping("/getUpdateApkInfo") | ||
24 | + @ApiOperation("获取apk更新信息") | ||
25 | + public AjaxResult getUpdateApkInfo(@RequestBody Map<String, String> param) { | ||
26 | + System.out.println("getUpdateApkInfo pkgName:" + param.get("pkgName")); | ||
27 | + if (param.get("pkgName") == null) | ||
28 | + throw new JSONException("pkgName不能为空"); | ||
29 | + if (param.get("versionCode") == null) | ||
30 | + throw new JSONException("versionCode不能为空"); | ||
31 | + List<ApkInfo> apkinfos = apkMapper.getApkInfoByPkgName(param.get("pkgName")); | ||
32 | + ApkInfo apkInfo = apkinfos.get(0); | ||
33 | + int maxVersion = Integer.MAX_VALUE; | ||
34 | + String project = param.containsKey("project") ? param.get("project") : null; | ||
35 | + if(project != null) { | ||
36 | + if(project.equals(Constant.PROJECT_XIANGJI)) { | ||
37 | + maxVersion = Constant.PROJECT_XIANGJI_MAX_LEVEL; | ||
38 | + } | ||
39 | + } | ||
40 | + for (ApkInfo apkInfo2 : apkinfos) //循环找到版本最大值 | ||
41 | + { | ||
42 | + if (apkInfo.getVersionCode() < apkInfo2.getVersionCode()) { | ||
43 | + if(apkInfo2.getVersionCode() > maxVersion) { | ||
44 | + continue; | ||
45 | + } | ||
46 | + apkInfo = apkInfo2; | ||
47 | + } | ||
48 | + } | ||
49 | + | ||
50 | + int versionCode = Integer.parseInt(param.get("versionCode")); | ||
51 | + System.out.println("getUpdateApkInfo versionCode:" + versionCode); | ||
52 | + System.out.println("apkInfo.getVersionCode():" + apkInfo.getVersionCode()); | ||
53 | + if(versionCode >= apkInfo.getVersionCode()) { | ||
54 | + return AjaxResult.error("当前已经是最新版本"); | ||
55 | + } | ||
56 | + | ||
57 | + return AjaxResult.success(apkInfo); | ||
58 | + } | ||
59 | + | ||
60 | + @PostMapping("/insertApkInfo") | ||
61 | + @ApiOperation("插入apk更新信息") | ||
62 | + public ApkInfo insertApkInfo(@RequestBody Map<String, String> param) { | ||
63 | + System.out.println("insertApkInfo pkgName:" + param.get("pkgName")); | ||
64 | + if (param.get("pkgName") == null) | ||
65 | + throw new JSONException("pkgName不能为空"); | ||
66 | + if (param.get("versionCode") == null) | ||
67 | + throw new JSONException("versionCode不能为空"); | ||
68 | + if (param.get("versionName") == null) | ||
69 | + throw new JSONException("versionName"); | ||
70 | + if (param.get("url") == null) | ||
71 | + throw new JSONException("url"); | ||
72 | + if (param.get("md5") == null) | ||
73 | + throw new JSONException("md5"); | ||
74 | + ApkInfo apkInfo = buildApkInfo(param); | ||
75 | + try { | ||
76 | + apkMapper.insertApkInfo(apkInfo.getPkgName(), apkInfo.getVersionCode(), apkInfo.getVersionName(), apkInfo.getUrl(), apkInfo.getMd5()); | ||
77 | + } catch(Exception e) { | ||
78 | + | ||
79 | + } | ||
80 | + return apkInfo; | ||
81 | + } | ||
82 | + | ||
83 | + @PostMapping("/clearApkInfo") | ||
84 | + @ApiOperation("删除apk信息") | ||
85 | + public AjaxResult clearApkInfo(@RequestBody Map<String, String> param) { | ||
86 | + System.out.println("clearApkInfo"); | ||
87 | + try { | ||
88 | + apkMapper.clearApkInfo(); | ||
89 | + } catch(Exception e) { | ||
90 | + | ||
91 | + } | ||
92 | + return AjaxResult.success("删除apk信息成功"); | ||
93 | + } | ||
94 | + | ||
95 | + private ApkInfo buildApkInfo(Map<String, String> param) { | ||
96 | + ApkInfo apkInfo = new ApkInfo(); | ||
97 | + apkInfo.setPkgName(param.get("pkgName")); | ||
98 | + apkInfo.setVersionCode(Integer.parseInt(param.get("versionCode"))); | ||
99 | + apkInfo.setVersionName(param.get("versionName")); | ||
100 | + apkInfo.setUrl(param.get("url")); | ||
101 | + apkInfo.setMd5(param.get("md5")); | ||
102 | + return apkInfo; | ||
103 | + } | ||
104 | +} |
src/main/java/com/huaheng/mobile/download/ApkInfo.java
0 → 100644
1 | +package com.huaheng.mobile.download; | ||
2 | + | ||
3 | +public class ApkInfo { | ||
4 | + | ||
5 | + private Integer id; | ||
6 | + private String pkgName; | ||
7 | + private Integer versionCode; | ||
8 | + private String versionName; | ||
9 | + private String url; | ||
10 | + private String md5; | ||
11 | + | ||
12 | + public Integer getId() { | ||
13 | + return id; | ||
14 | + } | ||
15 | + | ||
16 | + public void setId(Integer id) { | ||
17 | + this.id = id; | ||
18 | + } | ||
19 | + | ||
20 | + public String getPkgName() { | ||
21 | + return pkgName; | ||
22 | + } | ||
23 | + | ||
24 | + public void setPkgName(String pkgName) { | ||
25 | + this.pkgName = pkgName; | ||
26 | + } | ||
27 | + | ||
28 | + public Integer getVersionCode() { | ||
29 | + return versionCode; | ||
30 | + } | ||
31 | + | ||
32 | + public void setVersionCode(Integer versionCode) { | ||
33 | + this.versionCode = versionCode; | ||
34 | + } | ||
35 | + | ||
36 | + public String getVersionName() { | ||
37 | + return versionName; | ||
38 | + } | ||
39 | + | ||
40 | + public void setVersionName(String versionName) { | ||
41 | + this.versionName = versionName; | ||
42 | + } | ||
43 | + | ||
44 | + public String getUrl() { | ||
45 | + return url; | ||
46 | + } | ||
47 | + | ||
48 | + public void setUrl(String url) { | ||
49 | + this.url = url; | ||
50 | + } | ||
51 | + | ||
52 | + public String getMd5() { | ||
53 | + return md5; | ||
54 | + } | ||
55 | + | ||
56 | + public void setMd5(String md5) { | ||
57 | + this.md5 = md5; | ||
58 | + } | ||
59 | +} |
src/main/java/com/huaheng/mobile/download/Constant.java
0 → 100644
src/main/java/com/huaheng/mobile/general/CompanyInfo.java
0 → 100644
1 | +package com.huaheng.mobile.general; | ||
2 | + | ||
3 | +/** | ||
4 | + * | ||
5 | + * @author Enzo Cotter | ||
6 | + * @date 2019/12/15 | ||
7 | + */ | ||
8 | +public class CompanyInfo { | ||
9 | + | ||
10 | + private int companyId; | ||
11 | + private String companyCode; | ||
12 | + private String companyName; | ||
13 | + | ||
14 | + public CompanyInfo(int companyId, String companyCode, String companyName) { | ||
15 | + this.companyId = companyId; | ||
16 | + this.companyCode = companyCode; | ||
17 | + this.companyName = companyName; | ||
18 | + } | ||
19 | + | ||
20 | + public int getCompanyId() { | ||
21 | + return companyId; | ||
22 | + } | ||
23 | + | ||
24 | + public void setCompanyId(int companyId) { | ||
25 | + this.companyId = companyId; | ||
26 | + } | ||
27 | + | ||
28 | + public String getCompanyCode() { | ||
29 | + return companyCode; | ||
30 | + } | ||
31 | + | ||
32 | + public void setCompanyCode(String companyCode) { | ||
33 | + this.companyCode = companyCode; | ||
34 | + } | ||
35 | + | ||
36 | + public String getCompanyName() { | ||
37 | + return companyName; | ||
38 | + } | ||
39 | + | ||
40 | + public void setCompanyName(String companyName) { | ||
41 | + this.companyName = companyName; | ||
42 | + } | ||
43 | + | ||
44 | + @Override | ||
45 | + public String toString() { | ||
46 | + return "CompanyInfo{" + | ||
47 | + "companyId=" + companyId + | ||
48 | + ", companyCode='" + companyCode + '\'' + | ||
49 | + ", companyName='" + companyName + '\'' + | ||
50 | + '}'; | ||
51 | + } | ||
52 | +} |
src/main/java/com/huaheng/mobile/general/MobileUserController.java
0 → 100644
1 | +package com.huaheng.mobile.general; | ||
2 | + | ||
3 | +import com.alibaba.fastjson.JSONException; | ||
4 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||
5 | +import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||
6 | +import com.huaheng.common.utils.StringUtils; | ||
7 | +import com.huaheng.common.utils.security.ShiroUtils; | ||
8 | +import com.huaheng.framework.web.controller.BaseController; | ||
9 | +import com.huaheng.framework.web.domain.AjaxResult; | ||
10 | +import com.huaheng.pc.config.company.domain.Company; | ||
11 | +import com.huaheng.pc.config.company.service.CompanyService; | ||
12 | +import com.huaheng.pc.system.menu.domain.Menu; | ||
13 | +import com.huaheng.pc.system.menu.service.IMenuService; | ||
14 | +import com.huaheng.pc.system.user.domain.User; | ||
15 | +import com.huaheng.pc.system.user.service.IUserService; | ||
16 | +import io.swagger.annotations.Api; | ||
17 | +import io.swagger.annotations.ApiOperation; | ||
18 | +import io.swagger.annotations.ApiParam; | ||
19 | +import org.apache.shiro.SecurityUtils; | ||
20 | +import org.apache.shiro.authc.AuthenticationException; | ||
21 | +import org.apache.shiro.authc.UsernamePasswordToken; | ||
22 | +import org.apache.shiro.subject.Subject; | ||
23 | +import org.springframework.web.bind.annotation.PostMapping; | ||
24 | +import org.springframework.web.bind.annotation.RequestBody; | ||
25 | +import org.springframework.web.bind.annotation.RequestMapping; | ||
26 | +import org.springframework.web.bind.annotation.RestController; | ||
27 | + | ||
28 | +import javax.annotation.Resource; | ||
29 | +import java.util.ArrayList; | ||
30 | +import java.util.List; | ||
31 | +import java.util.Map; | ||
32 | +import java.util.stream.Collectors; | ||
33 | + | ||
34 | +/** | ||
35 | + * | ||
36 | + * @author Enzo Cotter | ||
37 | + * @date 2019/12/15 | ||
38 | + */ | ||
39 | +@RestController | ||
40 | +@RequestMapping("/mobile/") | ||
41 | +@Api(tags = {"MobileUserController"}, description = "移动端用户信息") | ||
42 | +public class MobileUserController extends BaseController { | ||
43 | + | ||
44 | + @Resource | ||
45 | + private IMenuService menuService; | ||
46 | + @Resource | ||
47 | + private IUserService userService; | ||
48 | + @Resource | ||
49 | + private CompanyService companyService; | ||
50 | + | ||
51 | + @PostMapping("/login") | ||
52 | + @ApiOperation("用户登陆") | ||
53 | + public AjaxResult login(@RequestBody @ApiParam(value="code和password的Map集合") Map<String, String> param) { | ||
54 | + if (param.get("code") == null) { | ||
55 | + throw new JSONException("code(用户名)不能为空"); | ||
56 | + } | ||
57 | + if (param.get("password") == null) { | ||
58 | + throw new JSONException("password(密码)不能为空"); | ||
59 | + } | ||
60 | + UsernamePasswordToken token = new UsernamePasswordToken(param.get("code"), param.get("password"), false); | ||
61 | + Subject subject = SecurityUtils.getSubject(); | ||
62 | + SecurityUtils.getSubject().getSession().setTimeout(-1000L); | ||
63 | + try { | ||
64 | + subject.login(token); | ||
65 | + List<Map<String, Object>> list = userService.getWarehouseByUserCode(param.get("code")); | ||
66 | + return AjaxResult.success(list); | ||
67 | + } catch (AuthenticationException e) { | ||
68 | + String msg = "用户或密码错误"; | ||
69 | + if (StringUtils.isNotEmpty(e.getMessage())) { | ||
70 | + msg = e.getMessage(); | ||
71 | + } | ||
72 | + return error(msg); | ||
73 | + } | ||
74 | + } | ||
75 | + | ||
76 | + @PostMapping("/getModules") | ||
77 | + @ApiOperation("获取当前用户模块列表") | ||
78 | + public AjaxResult getModules(@RequestBody @ApiParam(value="WarehouseId和warehouseCode的Map集合") Map<String, String> param) { | ||
79 | + if (param.get("warehouseCode") == null) { | ||
80 | + throw new JSONException("warehouseCode(仓库编码)不能为空"); | ||
81 | + } | ||
82 | + User user = ShiroUtils.getUser(); | ||
83 | + user.setWarehouseCode(param.get("warehouseCode")); | ||
84 | + ShiroUtils.setUser(user); | ||
85 | + List<Company> companys = companyService.selectCompanyByCurrentUserId(); | ||
86 | + user.setCompanyIdList(companys.stream().map(X -> X.getId()).collect(Collectors.toList())); | ||
87 | + user.setCompanyCodeList(companys.stream().map(X -> X.getCode()).collect(Collectors.toList())); | ||
88 | + ShiroUtils.setUser(user); | ||
89 | + List<Menu> menus = menuService.selectMobileMenusByUserId(ShiroUtils.getUserId()); | ||
90 | + return AjaxResult.success(menus); | ||
91 | + } | ||
92 | + | ||
93 | + @PostMapping("/heartbeat") | ||
94 | + @ApiOperation("心跳接口,用于延长cookie有效期") | ||
95 | + public AjaxResult heartbeat() | ||
96 | + { | ||
97 | + return AjaxResult.success("success"); | ||
98 | + } | ||
99 | + | ||
100 | + @PostMapping("/getCompanyInfo") | ||
101 | + @ApiOperation("获取公司信息") | ||
102 | + public AjaxResult getCompanyInfo() { | ||
103 | + LambdaQueryWrapper<Company> queryWrapper = Wrappers.lambdaQuery(); | ||
104 | + queryWrapper.eq(Company::getDeleted, false); | ||
105 | + | ||
106 | + List<Company> companies = companyService.list(queryWrapper); | ||
107 | + List<CompanyInfo> companyInfos = new ArrayList<>(); | ||
108 | + for(Company company : companies) { | ||
109 | + companyInfos.add(new CompanyInfo(company.getId(), company.getCode(), company.getName())); | ||
110 | + } | ||
111 | + return AjaxResult.success(companyInfos); | ||
112 | + } | ||
113 | +} |
src/main/java/com/huaheng/mobile/invenory/InventoryDetails.java
0 → 100644
1 | +package com.huaheng.mobile.invenory; | ||
2 | + | ||
3 | +import java.math.BigDecimal; | ||
4 | + | ||
5 | +/** | ||
6 | + * | ||
7 | + * @author Enzo Cotter | ||
8 | + * @date 2019/12/15 | ||
9 | + */ | ||
10 | +public class InventoryDetails { | ||
11 | + | ||
12 | + private String date; | ||
13 | + private BigDecimal qty; | ||
14 | + | ||
15 | + public String getDate() { | ||
16 | + return date; | ||
17 | + } | ||
18 | + | ||
19 | + public void setDate(String date) { | ||
20 | + this.date = date; | ||
21 | + } | ||
22 | + | ||
23 | + public BigDecimal getQty() { | ||
24 | + return qty; | ||
25 | + } | ||
26 | + | ||
27 | + public void setQty(BigDecimal qty) { | ||
28 | + this.qty = qty; | ||
29 | + } | ||
30 | + | ||
31 | + @Override | ||
32 | + public String toString() { | ||
33 | + return "InventoryDetails{" + | ||
34 | + "date='" + date + '\'' + | ||
35 | + ", qty=" + qty + | ||
36 | + '}'; | ||
37 | + } | ||
38 | +} |
src/main/java/com/huaheng/mobile/invenory/MobileInventory.java
0 → 100644
1 | +package com.huaheng.mobile.invenory; | ||
2 | + | ||
3 | +import lombok.Data; | ||
4 | + | ||
5 | +import java.math.BigDecimal; | ||
6 | + | ||
7 | +/** | ||
8 | + * | ||
9 | + * @author Enzo Cotter | ||
10 | + * @date 2019/12/15 | ||
11 | + */ | ||
12 | +@Data | ||
13 | +public class MobileInventory { | ||
14 | + | ||
15 | + /** 库位id */ | ||
16 | + private int id; | ||
17 | + /** 库位编号 */ | ||
18 | + private String locationCode; | ||
19 | + /** 容器编号 */ | ||
20 | + private String containerCode; | ||
21 | + /** 物料编码 */ | ||
22 | + private String materialCode; | ||
23 | + /**物料名称 */ | ||
24 | + private String materialName; | ||
25 | + /**物料规格 */ | ||
26 | + private String specification; | ||
27 | + /** 数量 */ | ||
28 | + private BigDecimal qty; | ||
29 | + /** 任务数量 */ | ||
30 | + private BigDecimal taskQty = new BigDecimal(0); | ||
31 | + /** 结果类型 */ | ||
32 | + private int resultType; | ||
33 | +} |
src/main/java/com/huaheng/mobile/invenory/MobileInventoryController.java
0 → 100644
1 | +package com.huaheng.mobile.invenory; | ||
2 | + | ||
3 | +import com.alibaba.fastjson.JSONException; | ||
4 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||
5 | +import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||
6 | +import com.huaheng.common.support.Convert; | ||
7 | +import com.huaheng.common.utils.DataUtils; | ||
8 | +import com.huaheng.common.utils.StringUtils; | ||
9 | +import com.huaheng.common.utils.security.ShiroUtils; | ||
10 | +import com.huaheng.framework.aspectj.lang.annotation.Log; | ||
11 | +import com.huaheng.framework.aspectj.lang.constant.BusinessType; | ||
12 | +import com.huaheng.framework.web.domain.AjaxResult; | ||
13 | +import com.huaheng.pc.config.container.domain.Container; | ||
14 | +import com.huaheng.pc.config.container.service.ContainerService; | ||
15 | +import com.huaheng.pc.config.location.domain.Location; | ||
16 | +import com.huaheng.pc.config.location.service.LocationService; | ||
17 | +import com.huaheng.pc.inventory.cycleCountDetail.service.CycleCountDetailService; | ||
18 | +import com.huaheng.pc.inventory.inventoryHeader.service.InventoryHeaderService; | ||
19 | +import com.huaheng.pc.report.excelReport.mapper.ExcelReportMapper; | ||
20 | +import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; | ||
21 | +import io.swagger.annotations.Api; | ||
22 | +import io.swagger.annotations.ApiOperation; | ||
23 | +import io.swagger.annotations.ApiParam; | ||
24 | +import org.springframework.web.bind.annotation.*; | ||
25 | + | ||
26 | +import javax.annotation.Resource; | ||
27 | +import java.math.BigDecimal; | ||
28 | +import java.util.*; | ||
29 | + | ||
30 | +/** | ||
31 | + * | ||
32 | + * @author Enzo Cotter | ||
33 | + * @date 2019/12/15 | ||
34 | + */ | ||
35 | +@CrossOrigin | ||
36 | +@RestController | ||
37 | +@RequestMapping("/mobile/inventory") | ||
38 | +@Api(tags = {"MobileInventoryController"}, description = "手机立体库库存相关") | ||
39 | +public class MobileInventoryController { | ||
40 | + | ||
41 | + @Resource | ||
42 | + private InventoryHeaderService inventoryService; | ||
43 | + @Resource | ||
44 | + private TaskHeaderService taskService; | ||
45 | + @Resource | ||
46 | + private LocationService locationService; | ||
47 | + @Resource | ||
48 | + ExcelReportMapper mapper; | ||
49 | + @Resource | ||
50 | + private CycleCountDetailService cycleCountDetailService; | ||
51 | + @Resource | ||
52 | + private ContainerService containerService; | ||
53 | + | ||
54 | + @PostMapping("/getInventoryInfo") | ||
55 | + @ApiOperation("移动端获得库存详情") | ||
56 | + @Log(title = "移动端获得库存详情", action = BusinessType.OTHER) | ||
57 | + public AjaxResult getInventoryInfo(@RequestBody @ApiParam(value="物料编码或者库位号") Map<String, String> param) { | ||
58 | + if (param.get("code") == null || param.get("code").trim().length() < 1) { | ||
59 | + throw new JSONException("查询码(code)不能为空"); | ||
60 | + } | ||
61 | + if (param.get("companyCode") == null || param.get("companyCode").trim().length() < 1) { | ||
62 | + throw new JSONException("(companyCode)不能为空"); | ||
63 | + } | ||
64 | + return inventoryService.getInventory(param.get("code"), param.get("companyCode")); | ||
65 | + } | ||
66 | + | ||
67 | + @PostMapping("/createCheckOutTask") | ||
68 | + @ApiOperation("移动端创建出库查看任务") | ||
69 | + @ResponseBody | ||
70 | + public AjaxResult createCheckOutTask(@RequestBody @ApiParam(value="库存ids") Map<String, String> param){ | ||
71 | + String ids = param.get("ids"); | ||
72 | + Integer companyId = DataUtils.getInteger(param.get("companyId")) ; | ||
73 | + String companyCode = param.get("companyCode"); | ||
74 | + if(StringUtils.isEmpty(ids)){ | ||
75 | + return AjaxResult.error("ids不能为空"); | ||
76 | + } | ||
77 | + return taskService.createCheckOutTask(ids.split(",")); | ||
78 | + } | ||
79 | + | ||
80 | + @PostMapping("/transfer") | ||
81 | + @ApiOperation("移动端创建移库任务") | ||
82 | + @ResponseBody | ||
83 | + public AjaxResult transfer(@RequestBody @ApiParam(value="库位情况") Map<String, String> param){ | ||
84 | + String sourceLocation = param.get("sourceLocation"); | ||
85 | + String destinationLocation = param.get("destinationLocation"); | ||
86 | + return taskService.createTransferTask(sourceLocation, destinationLocation); | ||
87 | + } | ||
88 | + | ||
89 | + @PostMapping( "/execute") | ||
90 | + @ApiOperation("执行立库任务") | ||
91 | + @ResponseBody | ||
92 | + public AjaxResult execute(@RequestBody @ApiParam(value="任务id") Map<String, String> param) { | ||
93 | + String taskId = param.get("taskId"); | ||
94 | + if (StringUtils.isEmpty(taskId)) { | ||
95 | + return AjaxResult.error("taskId不能为空"); | ||
96 | + } | ||
97 | + | ||
98 | + AjaxResult ajaxResult = taskService.sendTaskToWcs(Convert.toIntArray(taskId)); | ||
99 | + if(ajaxResult.hasErr()) { | ||
100 | + AjaxResult.success("执行失败"); | ||
101 | + } | ||
102 | + return AjaxResult.success("下发执行成功"); | ||
103 | + } | ||
104 | + | ||
105 | + @PostMapping( "/executeList") | ||
106 | + @ApiOperation("执行立库任务") | ||
107 | + @Log(title = "执行立库任务", action = BusinessType.OTHER) | ||
108 | + public AjaxResult executeList(@RequestBody List<TaskIds> taskDetails) { | ||
109 | + Integer[] taskIds = new Integer[taskDetails.size()]; | ||
110 | + for(int i=0; i<taskDetails.size() ; i++) { | ||
111 | + TaskIds taskDetail = taskDetails.get(i); | ||
112 | + taskIds[i] = taskDetail.getTaskId(); | ||
113 | + } | ||
114 | + AjaxResult ajaxResult = taskService.sendTaskToWcs(taskIds); | ||
115 | + return ajaxResult; | ||
116 | + } | ||
117 | + | ||
118 | + @PostMapping( "/completeTaskByWMS") | ||
119 | + @ApiOperation("完成立库任务") | ||
120 | + @ResponseBody | ||
121 | + public AjaxResult completeTaskByWMS(@RequestBody @ApiParam(value="任务id") Map<String, String> param) throws Exception { | ||
122 | + String taskId = param.get("taskId"); | ||
123 | + if (StringUtils.isEmpty(taskId)) { | ||
124 | + return AjaxResult.error("taskId不能为空"); | ||
125 | + } | ||
126 | + AjaxResult ajaxResult = taskService.completeTaskByWMS(Convert.toIntArray(taskId)); | ||
127 | + return ajaxResult; | ||
128 | + } | ||
129 | + | ||
130 | + @PostMapping( "/completeTaskListByWMS") | ||
131 | + @ApiOperation("完成立库任务") | ||
132 | + @ResponseBody | ||
133 | + public AjaxResult completeTaskListByWMS(@RequestBody List<TaskIds> taskDetails) throws Exception { | ||
134 | + Integer[] taskIds = new Integer[taskDetails.size()]; | ||
135 | + for(int i=0; i<taskDetails.size() ; i++) { | ||
136 | + TaskIds taskDetail = taskDetails.get(i); | ||
137 | + taskIds[i] = taskDetail.getTaskId(); | ||
138 | + } | ||
139 | + AjaxResult ajaxResult = taskService.completeTaskByWMS(taskIds); | ||
140 | + return ajaxResult; | ||
141 | + } | ||
142 | + | ||
143 | + @PostMapping( "/isLocation") | ||
144 | + @ApiOperation("判断是不是库位") | ||
145 | + @ResponseBody | ||
146 | + public AjaxResult isLocation(@RequestBody @ApiParam(value="任务id") Map<String, String> param) { | ||
147 | + String code = param.get("code"); | ||
148 | + if (StringUtils.isEmpty(code)) { | ||
149 | + return AjaxResult.error("location不能为空"); | ||
150 | + } | ||
151 | + LambdaQueryWrapper<Location> queryWrapper = Wrappers.lambdaQuery(); | ||
152 | + queryWrapper.eq(Location::getCode, code); | ||
153 | + Location location = locationService.getOne(queryWrapper); | ||
154 | + if(location == null) { | ||
155 | + return AjaxResult.error("没有这个库位"); | ||
156 | + } | ||
157 | + return AjaxResult.success("库位存在"); | ||
158 | + } | ||
159 | + | ||
160 | + @PostMapping("/getLocationCode") | ||
161 | + @ApiOperation("移动端获得库位联想词") | ||
162 | + @Log(title = "移动端获得库位联想词", action = BusinessType.OTHER) | ||
163 | + public AjaxResult getLocationCode(@RequestBody @ApiParam(value="库位号") Map<String, String> param) { | ||
164 | + if (param.get("code") == null || param.get("code").trim().length() < 1) { | ||
165 | + throw new JSONException("查询码(code)不能为空"); | ||
166 | + } | ||
167 | + String type = param.get("type"); | ||
168 | + if (type == null || type.trim().length() < 1) { | ||
169 | + throw new JSONException("type不能为空"); | ||
170 | + } | ||
171 | + | ||
172 | + return inventoryService.getLocationForecast(param.get("code"), Integer.parseInt(type)); | ||
173 | + } | ||
174 | + | ||
175 | + @PostMapping("/createEmptyIn") | ||
176 | + @ApiOperation("移动端空托入库") | ||
177 | + @Log(title = "移动端空托入库", action = BusinessType.OTHER) | ||
178 | + public AjaxResult createEmptyIn(@RequestBody Map<String, String> param) { | ||
179 | + if (param.get("containerCode") == null || param.get("containerCode").trim().length() < 1) { | ||
180 | + throw new JSONException("容器号不能为空"); | ||
181 | + } | ||
182 | +// if (param.get("destinationLocation") == null || param.get("destinationLocation").trim().length() < 1) { | ||
183 | +// throw new JSONException("目的库位不能为空"); | ||
184 | +// } | ||
185 | + String containerCode = param.get("containerCode"); | ||
186 | + String destinationLocation = param.get("destinationLocation"); | ||
187 | + String companyCode = param.get("companyCode"); | ||
188 | + return inventoryService.createEmptyIn(containerCode, destinationLocation); | ||
189 | + } | ||
190 | + | ||
191 | + @PostMapping("/createEmptyOut") | ||
192 | + @ApiOperation("移动端空托出库") | ||
193 | + @Log(title = "移动端空托出库", action = BusinessType.OTHER) | ||
194 | + public AjaxResult createEmptyOut(@RequestBody Map<String, String> param) { | ||
195 | + if (param.get("containerCode") == null || param.get("containerCode").trim().length() < 1){ | ||
196 | + throw new JSONException("容器号不能为空"); | ||
197 | + } | ||
198 | + if (param.get("sourceLocation") == null || param.get("sourceLocation").trim().length() < 1) { | ||
199 | + throw new JSONException("源库位不能为空"); | ||
200 | + } | ||
201 | + String containerCode = param.get("containerCode"); | ||
202 | + String sourceLocation = param.get("sourceLocation"); | ||
203 | + return inventoryService.createEmptyOut(containerCode, sourceLocation); | ||
204 | + } | ||
205 | + | ||
206 | + @PostMapping("/get7daysShipment") | ||
207 | + @ApiOperation("移动端获取7天收货和出货量") | ||
208 | + @Log(title = "移动端获取7天收货和出货量", action = BusinessType.OTHER) | ||
209 | + public AjaxResult get7daysShipment(@RequestBody Map<String, String> param) { | ||
210 | + String sql = "select a.click_date as date,ifnull(b.taskQty,0) as qty\n" + | ||
211 | + "from (\n" + | ||
212 | + " SELECT curdate() as click_date\n" + | ||
213 | + " union all\n" + | ||
214 | + " SELECT date_sub(curdate(), interval 1 day) as click_date\n" + | ||
215 | + " union all\n" + | ||
216 | + " SELECT date_sub(curdate(), interval 2 day) as click_date\n" + | ||
217 | + " union all\n" + | ||
218 | + " SELECT date_sub(curdate(), interval 3 day) as click_date\n" + | ||
219 | + " union all\n" + | ||
220 | + " SELECT date_sub(curdate(), interval 4 day) as click_date\n" + | ||
221 | + " union all\n" + | ||
222 | + " SELECT date_sub(curdate(), interval 5 day) as click_date\n" + | ||
223 | + " union all\n" + | ||
224 | + " SELECT date_sub(curdate(), interval 6 day) as click_date\n" + | ||
225 | + ") a left join (\n" + | ||
226 | + "SELECT DATE(h.created) AS created , SUM(d.qty) AS taskQty from shipment_container_detail d join shipment_container_header h on d.shippingContainerId = h.id and h.warehouseCode='"+ShiroUtils.getWarehouseCode()+"' WHERE h.created >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND h.status=30 GROUP BY DATE(h.created)\n" + | ||
227 | + ") b on a.click_date = b.created ORDER BY a.click_date;"; | ||
228 | + List<LinkedHashMap<String, Object>> list = mapper.selectCommon(sql); | ||
229 | + | ||
230 | + sql = "select a.click_date as date,ifnull(b.taskQty,0) as qty\n" + | ||
231 | + "from (\n" + | ||
232 | + " SELECT curdate() as click_date\n" + | ||
233 | + " union all\n" + | ||
234 | + " SELECT date_sub(curdate(), interval 1 day) as click_date\n" + | ||
235 | + " union all\n" + | ||
236 | + " SELECT date_sub(curdate(), interval 2 day) as click_date\n" + | ||
237 | + " union all\n" + | ||
238 | + " SELECT date_sub(curdate(), interval 3 day) as click_date\n" + | ||
239 | + " union all\n" + | ||
240 | + " SELECT date_sub(curdate(), interval 4 day) as click_date\n" + | ||
241 | + " union all\n" + | ||
242 | + " SELECT date_sub(curdate(), interval 5 day) as click_date\n" + | ||
243 | + " union all\n" + | ||
244 | + " SELECT date_sub(curdate(), interval 6 day) as click_date\n" + | ||
245 | + ") a left join (\n" + | ||
246 | + "SELECT DATE(h.created) AS created , SUM(d.qty) AS taskQty from receipt_container_detail d join receipt_container_header h on d.receiptContainerId = h.id and h.warehouseCode='"+ShiroUtils.getWarehouseCode()+"' WHERE h.created >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND d.status=30 GROUP BY DATE(h.created)\n" + | ||
247 | + ") b on a.click_date = b.created ORDER BY a.click_date;"; | ||
248 | + List<LinkedHashMap<String, Object>> list2 = mapper.selectCommon(sql); | ||
249 | + | ||
250 | + | ||
251 | + List<LinkedHashMap<String, Object>> result = new ArrayList<>(); | ||
252 | + result.addAll(list); | ||
253 | + result.addAll(list2); | ||
254 | + | ||
255 | + List<InventoryDetails> inventoryDetailList = new ArrayList<>(); | ||
256 | + for(LinkedHashMap<String, Object> map : result) { | ||
257 | + Iterator iter = map.entrySet().iterator(); | ||
258 | + String date = null; | ||
259 | + BigDecimal qty = new BigDecimal(0); | ||
260 | + while (iter.hasNext()) { | ||
261 | + Map.Entry entry = (Map.Entry) iter.next(); | ||
262 | + Object key = entry.getKey(); | ||
263 | + Object val = entry.getValue(); | ||
264 | + if(date == null) { | ||
265 | + date = val.toString(); | ||
266 | + } else { | ||
267 | + qty = (BigDecimal) val; | ||
268 | + } | ||
269 | + } | ||
270 | + inventoryDetailList.add(newInventoryDetail(date, qty)); | ||
271 | + } | ||
272 | + return AjaxResult.success(inventoryDetailList); | ||
273 | + } | ||
274 | + | ||
275 | + private InventoryDetails newInventoryDetail(String date, BigDecimal qty) { | ||
276 | + InventoryDetails inventoryDetail = new InventoryDetails(); | ||
277 | + inventoryDetail.setDate(date); | ||
278 | + inventoryDetail.setQty(qty); | ||
279 | + return inventoryDetail; | ||
280 | + } | ||
281 | + | ||
282 | + @PostMapping("/getTodayShipmentDetail") | ||
283 | + @ApiOperation("移动端获得今天发货详情") | ||
284 | + @Log(title = "移动端获得今天发货详情", action = BusinessType.OTHER) | ||
285 | + public AjaxResult getTodayShipmentDetail(@RequestBody Map<String, String> param) { | ||
286 | + String sql = "select d.materialName, SUM(d.qty) as qty " + | ||
287 | + "from shipment_container_header h join shipment_container_detail d " + | ||
288 | + "on d.shippingContainerId = h.id WHERE h.created >= CURDATE() AND h.`status`>19 GROUP BY d.materialName"; | ||
289 | + List<LinkedHashMap<String, Object>> list = mapper.selectCommon(sql); | ||
290 | + | ||
291 | + sql = "select m.name, b.taskQty as qty \n" + | ||
292 | + "from material m \n" + | ||
293 | + "join (\n" + | ||
294 | + "select d.materialCode as material, SUM(d.qty) " + | ||
295 | + "as taskQty from receipt_container_header h join receipt_container_detail d " + | ||
296 | + "on d.receiptContainerId = h.id WHERE h.created >= CURDATE() AND h.`status`>19 GROUP BY d.materialCode\n" + | ||
297 | + ") b on m.`code` = b.material ORDER BY m.name"; | ||
298 | + List<LinkedHashMap<String, Object>> list2 = mapper.selectCommon(sql); | ||
299 | + List<com.huaheng.mobile.invenory.ShipmentDetail> shipmentDetails = getShipmentDetails(list); | ||
300 | + shipmentDetails.add(newShipmentDetail("delete", new BigDecimal(0))); | ||
301 | + shipmentDetails.addAll(getShipmentDetails(list2)); | ||
302 | + | ||
303 | + return AjaxResult.success(shipmentDetails); | ||
304 | + } | ||
305 | + | ||
306 | + private List<com.huaheng.mobile.invenory.ShipmentDetail> getShipmentDetails(List<LinkedHashMap<String, Object>> list) { | ||
307 | + List<com.huaheng.mobile.invenory.ShipmentDetail> shipmentDetails = new ArrayList<>(); | ||
308 | + for (LinkedHashMap<String, Object> map : list) { | ||
309 | + Iterator iter = map.entrySet().iterator(); | ||
310 | + String materialName = null; | ||
311 | + BigDecimal qty = new BigDecimal(0); | ||
312 | + while (iter.hasNext()) { | ||
313 | + Map.Entry entry = (Map.Entry) iter.next(); | ||
314 | + Object key = entry.getKey(); | ||
315 | + Object val = entry.getValue(); | ||
316 | + if (materialName == null) { | ||
317 | + materialName = val.toString(); | ||
318 | + } else { | ||
319 | + qty = (BigDecimal) val; | ||
320 | + } | ||
321 | + } | ||
322 | + shipmentDetails.add(newShipmentDetail(materialName, qty)); | ||
323 | + } | ||
324 | + return shipmentDetails; | ||
325 | + } | ||
326 | + | ||
327 | + private com.huaheng.mobile.invenory.ShipmentDetail newShipmentDetail(String materialName, BigDecimal qty){ | ||
328 | + com.huaheng.mobile.invenory.ShipmentDetail shipmentDetail = new com.huaheng.mobile.invenory.ShipmentDetail(); | ||
329 | + shipmentDetail.setMaterialName(materialName); | ||
330 | + shipmentDetail.setQty(qty); | ||
331 | + return shipmentDetail; | ||
332 | + } | ||
333 | + | ||
334 | + /** | ||
335 | + * 移动端根据容器编码获取盘点任务 | ||
336 | + * @param param | ||
337 | + * @return | ||
338 | + */ | ||
339 | + @ResponseBody | ||
340 | + @PostMapping("/findTransferByContainerCode") | ||
341 | + public AjaxResult findTransferByContainerCode(@RequestBody Map<String, String> param) { | ||
342 | + String containCode = param.get("containCode"); | ||
343 | + if (StringUtils.isEmpty(containCode)){ | ||
344 | + return AjaxResult.error("容器编码为空"); | ||
345 | + } else { | ||
346 | + return AjaxResult.success(taskService.mobileFindTransferTask(containCode)); | ||
347 | + } | ||
348 | + } | ||
349 | + | ||
350 | + /** | ||
351 | + * 移动端实盘登记 | ||
352 | + * @param param | ||
353 | + * @return | ||
354 | + */ | ||
355 | + @ResponseBody | ||
356 | + @PostMapping("/confirmGapQty") | ||
357 | + public AjaxResult confirmGapQty(@RequestBody Map<String, String> param) { | ||
358 | + int detailId = Integer.parseInt(param.get("detailId")); | ||
359 | + BigDecimal qty = new BigDecimal(param.get("qty")); | ||
360 | + return cycleCountDetailService.confirmGapQty(detailId, qty); | ||
361 | + } | ||
362 | + | ||
363 | + @PostMapping("/getEmptyContainerInLocation") | ||
364 | + @ApiOperation("选取空托出库的库位") | ||
365 | + @Log(title = "选取空托出库的库位", action = BusinessType.OTHER) | ||
366 | + public AjaxResult getEmptyContainerInLocation(@RequestBody Map<String, String> param) { | ||
367 | + String warehouCOde = ShiroUtils.getWarehouseCode(); | ||
368 | + List<Location> list = containerService.getEmptyContainerInLocation(null,null,ShiroUtils.getWarehouseCode()); | ||
369 | + return AjaxResult.success(list); | ||
370 | + } | ||
371 | + | ||
372 | + @PostMapping("/pickLocation") | ||
373 | + @ApiOperation("选取补充入库的库位") | ||
374 | + @Log(title = "选取补充入库的库位", action = BusinessType.OTHER) | ||
375 | + public AjaxResult pickLocation(@RequestBody Map<String, String> param) { | ||
376 | + List<Location> locations = locationService.pickLocation(); | ||
377 | + Container condition = new Container(); | ||
378 | + condition.setWarehouseCode(ShiroUtils.getWarehouseCode()); | ||
379 | + LambdaQueryWrapper lambda3 = Wrappers.lambdaQuery(condition); | ||
380 | + List<Container> containers = containerService.list(lambda3); | ||
381 | + for(Location location : locations) { | ||
382 | + for(Container container : containers) { | ||
383 | + if(container.getCode().equals(location.getContainerCode())) { | ||
384 | + if(container.getStatus().equals("some")) { | ||
385 | + location.setStatus("some"); | ||
386 | + } | ||
387 | + } | ||
388 | + } | ||
389 | + } | ||
390 | + return AjaxResult.success(locations); | ||
391 | + } | ||
392 | +} |
src/main/java/com/huaheng/mobile/invenory/ShipmentDetail.java
0 → 100644
1 | +package com.huaheng.mobile.invenory; | ||
2 | + | ||
3 | +import java.math.BigDecimal; | ||
4 | + | ||
5 | +/** | ||
6 | + * Created by Enzo Cotter on 2019/12/15. | ||
7 | + */ | ||
8 | +public class ShipmentDetail { | ||
9 | + private String materialName; | ||
10 | + private BigDecimal qty; | ||
11 | + | ||
12 | + public String getMaterialName() { | ||
13 | + return materialName; | ||
14 | + } | ||
15 | + | ||
16 | + public void setMaterialName(String materialName) { | ||
17 | + this.materialName = materialName; | ||
18 | + } | ||
19 | + | ||
20 | + public BigDecimal getQty() { | ||
21 | + return qty; | ||
22 | + } | ||
23 | + | ||
24 | + public void setQty(BigDecimal qty) { | ||
25 | + this.qty = qty; | ||
26 | + } | ||
27 | + | ||
28 | + @Override | ||
29 | + public String toString() { | ||
30 | + return "ShipmentDetail{" + | ||
31 | + "materialName='" + materialName + '\'' + | ||
32 | + ", qty=" + qty + | ||
33 | + '}'; | ||
34 | + } | ||
35 | +} |
src/main/java/com/huaheng/mobile/invenory/TaskIds.java
0 → 100644
1 | +package com.huaheng.mobile.invenory; | ||
2 | + | ||
3 | +/** | ||
4 | + * | ||
5 | + * @author Enzo Cotter | ||
6 | + * @date 2019/12/15 | ||
7 | + */ | ||
8 | +public class TaskIds { | ||
9 | + | ||
10 | + private int taskId; | ||
11 | + | ||
12 | + public int getTaskId() { | ||
13 | + return taskId; | ||
14 | + } | ||
15 | + | ||
16 | + public void setTaskId(int taskId) { | ||
17 | + this.taskId = taskId; | ||
18 | + } | ||
19 | + | ||
20 | + @Override | ||
21 | + public String toString() { | ||
22 | + return "TaskDetail{" + | ||
23 | + "taskId=" + taskId + | ||
24 | + '}'; | ||
25 | + } | ||
26 | +} |
src/main/java/com/huaheng/mobile/receipt/MaterialInfo.java
0 → 100644
1 | +package com.huaheng.mobile.receipt; | ||
2 | + | ||
3 | +/** | ||
4 | + * | ||
5 | + * @author Enzo Cotter | ||
6 | + * @date 2019/12/15 | ||
7 | + */ | ||
8 | +public class MaterialInfo { | ||
9 | + | ||
10 | + private String materialCode; | ||
11 | + | ||
12 | + private String materialName; | ||
13 | + | ||
14 | + private String qty; | ||
15 | + | ||
16 | + private String type; | ||
17 | + | ||
18 | + private String batch; | ||
19 | + | ||
20 | + private String project; | ||
21 | + | ||
22 | + private String weight; | ||
23 | + | ||
24 | + public String getMaterialCode() { | ||
25 | + return materialCode; | ||
26 | + } | ||
27 | + | ||
28 | + public void setMaterialCode(String materialCode) { | ||
29 | + this.materialCode = materialCode; | ||
30 | + } | ||
31 | + | ||
32 | + public String getMaterialName() { | ||
33 | + return materialName; | ||
34 | + } | ||
35 | + | ||
36 | + public void setMaterialName(String materialName) { | ||
37 | + this.materialName = materialName; | ||
38 | + } | ||
39 | + | ||
40 | + | ||
41 | + public String getType() { | ||
42 | + return type; | ||
43 | + } | ||
44 | + | ||
45 | + public void setType(String type) { | ||
46 | + this.type = type; | ||
47 | + } | ||
48 | + | ||
49 | + public String getQty() { | ||
50 | + return qty; | ||
51 | + } | ||
52 | + | ||
53 | + public void setQty(String qty) { | ||
54 | + this.qty = qty; | ||
55 | + } | ||
56 | + | ||
57 | + public String getBatch() { | ||
58 | + return batch; | ||
59 | + } | ||
60 | + | ||
61 | + public void setBatch(String batch) { | ||
62 | + this.batch = batch; | ||
63 | + } | ||
64 | + | ||
65 | + public String getProject() { | ||
66 | + return project; | ||
67 | + } | ||
68 | + | ||
69 | + public void setProject(String project) { | ||
70 | + this.project = project; | ||
71 | + } | ||
72 | + | ||
73 | + public String getWeight() { | ||
74 | + return weight; | ||
75 | + } | ||
76 | + | ||
77 | + public void setWeight(String weight) { | ||
78 | + this.weight = weight; | ||
79 | + } | ||
80 | + | ||
81 | + @Override | ||
82 | + public String toString() { | ||
83 | + return "MaterialInfo{" + | ||
84 | + "materialCode='" + materialCode + '\'' + | ||
85 | + ", materialName='" + materialName + '\'' + | ||
86 | + ", qty='" + qty + '\'' + | ||
87 | + ", type='" + type + '\'' + | ||
88 | + ", batch='" + batch + '\'' + | ||
89 | + ", project='" + project + '\'' + | ||
90 | + ", weight='" + weight + '\'' + | ||
91 | + '}'; | ||
92 | + } | ||
93 | +} |
src/main/java/com/huaheng/mobile/receipt/MobileBatchReceiptController.java
0 → 100644
1 | +package com.huaheng.mobile.receipt; | ||
2 | + | ||
3 | +import com.alibaba.fastjson.JSONException; | ||
4 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||
5 | +import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||
6 | +import com.huaheng.api.general.domain.ReceiptDomain; | ||
7 | +import com.huaheng.common.constant.QuantityConstant; | ||
8 | +import com.huaheng.common.exception.service.ServiceException; | ||
9 | +import com.huaheng.common.utils.StringUtils; | ||
10 | +import com.huaheng.common.utils.security.ShiroUtils; | ||
11 | +import com.huaheng.framework.aspectj.lang.annotation.Log; | ||
12 | +import com.huaheng.framework.aspectj.lang.constant.BusinessType; | ||
13 | +import com.huaheng.framework.web.domain.AjaxResult; | ||
14 | +import com.huaheng.pc.config.company.service.CompanyService; | ||
15 | +import com.huaheng.pc.config.container.domain.Container; | ||
16 | +import com.huaheng.pc.config.container.service.ContainerService; | ||
17 | +import com.huaheng.pc.config.location.domain.Location; | ||
18 | +import com.huaheng.pc.config.location.service.LocationService; | ||
19 | +import com.huaheng.pc.config.material.domain.Material; | ||
20 | +import com.huaheng.pc.config.material.service.MaterialService; | ||
21 | +import com.huaheng.pc.receipt.receiptContainerDetail.domain.ReceiptContainerDetail; | ||
22 | +import com.huaheng.pc.receipt.receiptContainerDetail.service.ReceiptContainerDetailService; | ||
23 | +import com.huaheng.pc.receipt.receiptContainerHeader.domain.ReceiptContainerHeader; | ||
24 | +import com.huaheng.pc.receipt.receiptContainerHeader.domain.ReceiptContainerView; | ||
25 | +import com.huaheng.pc.receipt.receiptContainerHeader.service.ReceiptContainerHeaderService; | ||
26 | +import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; | ||
27 | +import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService; | ||
28 | +import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; | ||
29 | +import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService; | ||
30 | +import com.huaheng.pc.task.taskDetail.domain.TaskDetail; | ||
31 | +import com.huaheng.pc.task.taskDetail.service.TaskDetailService; | ||
32 | +import com.huaheng.pc.task.taskHeader.domain.TaskHeader; | ||
33 | +import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; | ||
34 | +import groovy.json.JsonException; | ||
35 | +import io.swagger.annotations.Api; | ||
36 | +import io.swagger.annotations.ApiOperation; | ||
37 | +import io.swagger.annotations.ApiParam; | ||
38 | +import org.springframework.transaction.annotation.Transactional; | ||
39 | +import org.springframework.web.bind.annotation.*; | ||
40 | + | ||
41 | +import javax.annotation.Resource; | ||
42 | +import java.math.BigDecimal; | ||
43 | +import java.util.Date; | ||
44 | +import java.util.List; | ||
45 | +import java.util.Map; | ||
46 | + | ||
47 | +/** | ||
48 | + * | ||
49 | + * @author Enzo Cotter | ||
50 | + * @date 2019/12/15 | ||
51 | + */ | ||
52 | +@CrossOrigin | ||
53 | +@RestController | ||
54 | +@RequestMapping("/mobile/receipt/batch") | ||
55 | +@Api(tags = {"MobileBatchReceiptController"}, description = "移动端收货") | ||
56 | +public class MobileBatchReceiptController { | ||
57 | + | ||
58 | + @Resource | ||
59 | + private ReceiptContainerHeaderService receiptContainerHeaderService; | ||
60 | + @Resource | ||
61 | + private ReceiptHeaderService receiptHeaderService; | ||
62 | + @Resource | ||
63 | + private ReceiptDetailService receiptDetailService; | ||
64 | + @Resource | ||
65 | + private ReceiptContainerDetailService receiptContainerDetailService; | ||
66 | + @Resource | ||
67 | + private ContainerService containerService; | ||
68 | + @Resource | ||
69 | + private MaterialService materialService; | ||
70 | + @Resource | ||
71 | + private LocationService locationService; | ||
72 | + @Resource | ||
73 | + private TaskHeaderService taskHeaderService; | ||
74 | + @Resource | ||
75 | + private TaskDetailService taskDetailService; | ||
76 | + @Resource | ||
77 | + private CompanyService companyService; | ||
78 | + | ||
79 | + @PostMapping("/scanBill") | ||
80 | + @ApiOperation("移动端扫描入库单") | ||
81 | + @Log(title = "移动端扫描入库单", action = BusinessType.OTHER) | ||
82 | + public AjaxResult scanBill(@RequestBody @ApiParam(value = "收货单号") Map<String, String> param) throws Exception { | ||
83 | + if (param.get("code") == null || param.get("code").trim().length() < 1) { | ||
84 | + throw new JSONException("收货单号(code)不能为空"); | ||
85 | + } else if (StringUtils.isEmpty(param.get("type"))) { | ||
86 | + throw new JsonException("入库单类型不能为空"); | ||
87 | + } else if (StringUtils.isEmpty(param.get("companyCode"))) { | ||
88 | + throw new JsonException("库存组织不能为空"); | ||
89 | + } | ||
90 | + return receiptDetailService.scanReceiptCode(param.get("code"), param.get("type"), param.get("companyCode")); | ||
91 | + } | ||
92 | + | ||
93 | + @PostMapping("/scanContainer") | ||
94 | + @ApiOperation("移动端入库扫描容器") | ||
95 | + @Log(title = "移动端入库扫描容器", action = BusinessType.OTHER) | ||
96 | + public AjaxResult scanContainer(@RequestBody @ApiParam(value = "容器号") Map<String, String> param) throws Exception { | ||
97 | + if (param.get("code") == null || param.get("code").trim().length() < 1) { | ||
98 | + throw new JSONException("容器号(code)不能为空"); | ||
99 | + } | ||
100 | + | ||
101 | + ReceiptContainerView receiptContainerView = new ReceiptContainerView(); | ||
102 | + receiptContainerView.setReceiptContainerCode(param.get("code")); | ||
103 | + receiptContainerView.setTaskType((short) 100); | ||
104 | + AjaxResult result = receiptContainerHeaderService.checkContainer(receiptContainerView); | ||
105 | + LambdaQueryWrapper<Container> containerLambdaQueryWrapper = Wrappers.lambdaQuery(); | ||
106 | + containerLambdaQueryWrapper.eq(Container::getCode, param.get("code")); | ||
107 | + Container container = containerService.getOne(containerLambdaQueryWrapper); | ||
108 | + if (container == null) { | ||
109 | + return AjaxResult.error("托盘编码错误"); | ||
110 | + } | ||
111 | + if (!container.getStatus().equals("empty")) { | ||
112 | + return AjaxResult.error("托盘状态不为空"); | ||
113 | + } | ||
114 | + if (!container.getLocationCode().equals("")) { | ||
115 | + return AjaxResult.error(""); | ||
116 | + } | ||
117 | + return result; | ||
118 | + } | ||
119 | + | ||
120 | + @PostMapping("/save") | ||
121 | + @ApiOperation("移动端收货保存") | ||
122 | + @Log(title = "移动端收货保存", action = BusinessType.OTHER) | ||
123 | + public AjaxResult save(@RequestBody @ApiParam(value = "收货单") List<ReceiptContainerView> record) throws Exception { | ||
124 | + AjaxResult result = receiptContainerHeaderService.batchSave(record); | ||
125 | + return result; | ||
126 | + } | ||
127 | + | ||
128 | + @PostMapping("/getMaterial") | ||
129 | + @ApiOperation("移动端获取物料信息") | ||
130 | + @Log(title = "移动端获取物料信息", action = BusinessType.OTHER) | ||
131 | + public AjaxResult getMaterial(@RequestBody @ApiParam(value = "物料号") Map<String, String> param) throws Exception { | ||
132 | + if (param.get("code") == null || param.get("code").trim().length() < 1) { | ||
133 | + throw new JSONException("容器号(code)不能为空"); | ||
134 | + } | ||
135 | + Material material = materialService.findAllByCode(param.get("code")); | ||
136 | + if (material == null) { | ||
137 | + return AjaxResult.error("没有该物料"); | ||
138 | + } | ||
139 | + MaterialInfo materialInfo = new MaterialInfo(); | ||
140 | + materialInfo.setMaterialCode(material.getCode()); | ||
141 | + materialInfo.setMaterialName(material.getName()); | ||
142 | + materialInfo.setType(material.getSpec()); | ||
143 | + | ||
144 | + return AjaxResult.success(materialInfo); | ||
145 | + } | ||
146 | + | ||
147 | + @PostMapping("/getLatestMaterial") | ||
148 | + @ApiOperation("移动端获取物料信息") | ||
149 | + @Log(title = "移动端获取物料信息", action = BusinessType.OTHER) | ||
150 | + public AjaxResult getLatestMaterial(@RequestBody @ApiParam(value = "物料号") Map<String, String> param) throws Exception { | ||
151 | + List<Material> materials = materialService.findLatest(); | ||
152 | + if (materials == null) { | ||
153 | + return AjaxResult.error("没有找到物料"); | ||
154 | + } | ||
155 | + | ||
156 | + return AjaxResult.success(materials); | ||
157 | + } | ||
158 | + | ||
159 | + @PostMapping("/getLatestReceipt") | ||
160 | + @ApiOperation("移动端获取入库单") | ||
161 | + @Log(title = "移动端获取入库单", action = BusinessType.OTHER) | ||
162 | + public AjaxResult getLatestReceipt(@RequestBody @ApiParam(value = "物料号") Map<String, String> param) throws Exception { | ||
163 | + String companyCode = param.get("companyCode"); | ||
164 | + List<ReceiptHeader> receiptHeaders = receiptHeaderService.getLatestReceipt(companyCode); | ||
165 | + if (receiptHeaders == null) { | ||
166 | + return AjaxResult.error("没有找到入库单"); | ||
167 | + } | ||
168 | + return AjaxResult.success(receiptHeaders); | ||
169 | + } | ||
170 | + | ||
171 | + | ||
172 | + | ||
173 | + @PostMapping("/checkLocation") | ||
174 | + @ApiOperation("移动端验证库位") | ||
175 | + @Log(title = "移动端验证库位", action = BusinessType.OTHER) | ||
176 | + public AjaxResult checkLocation(@RequestBody @ApiParam(value = "物料号") Map<String, String> param) throws Exception { | ||
177 | + if (param.get("code") == null || param.get("code").trim().length() < 1) { | ||
178 | + throw new JSONException("容器号(code)不能为空"); | ||
179 | + } | ||
180 | + | ||
181 | + boolean result = locationService.checkLocation(param.get("code")); | ||
182 | + if (!result) { | ||
183 | + return AjaxResult.error("没有该库位"); | ||
184 | + } | ||
185 | + return AjaxResult.success(result); | ||
186 | + } | ||
187 | + | ||
188 | + @PostMapping("/getFreeLocation") | ||
189 | + @ApiOperation("移动端获得空闲库位") | ||
190 | + @Log(title = "移动端获得空闲库位", action = BusinessType.OTHER) | ||
191 | + public AjaxResult getFreeLocation(@RequestBody @ApiParam(value = "物料号") Map<String, String> param) throws Exception { | ||
192 | + if (param.get("materialCode") == null || param.get("materialCode").trim().length() < 1) { | ||
193 | + throw new JSONException("materialCode不能为空"); | ||
194 | + } | ||
195 | + | ||
196 | + if (param.get("batch") == null || param.get("batch").trim().length() < 1) { | ||
197 | + throw new JSONException("batch不能为空"); | ||
198 | + } | ||
199 | + String materialCode = param.get("materialCode"); | ||
200 | + String batch = param.get("batch"); | ||
201 | + boolean result = locationService.getFreeLocation(materialCode, batch); | ||
202 | + if (!result) { | ||
203 | + return AjaxResult.error("没有空闲的分区库位"); | ||
204 | + } | ||
205 | + return AjaxResult.success(result); | ||
206 | + } | ||
207 | + | ||
208 | + @PostMapping("/getContainerCode") | ||
209 | + @ApiOperation("移动端验证库位") | ||
210 | + @Log(title = "移动端验证库位", action = BusinessType.OTHER) | ||
211 | + public AjaxResult getContainerCode(@RequestBody @ApiParam(value = "物料号") Map<String, String> param) throws Exception { | ||
212 | + if (param.get("code") == null || param.get("code").trim().length() < 1) { | ||
213 | + throw new JSONException("容器号(code)不能为空"); | ||
214 | + } | ||
215 | + LambdaQueryWrapper<Location> queryWrapper = Wrappers.lambdaQuery(); | ||
216 | + queryWrapper.eq(Location::getCode, param.get("code")) | ||
217 | + .eq(Location::getWarehouseCode, ShiroUtils.getWarehouseCode()) | ||
218 | + .eq(Location::getDeleted, false); | ||
219 | + Location location = locationService.getOne(queryWrapper); | ||
220 | + if (location == null) { | ||
221 | + return AjaxResult.error("没有该库位"); | ||
222 | + } | ||
223 | + return AjaxResult.success("成功", location.getContainerCode()); | ||
224 | + } | ||
225 | + | ||
226 | + @PostMapping("/quickReceipt") | ||
227 | + @ApiOperation("移动端收货保存") | ||
228 | + @Log(title = "移动端收货保存", action = BusinessType.OTHER) | ||
229 | + @Transactional(rollbackFor = Exception.class) | ||
230 | + public AjaxResult quickReceipt(@RequestBody @ApiParam(value="收货单") List<ReceiptBill> receiptBills) throws Exception { | ||
231 | + if (receiptBills == null || receiptBills.size() <=0) { | ||
232 | + throw new JSONException("没有收货信息"); | ||
233 | + } | ||
234 | + String containerCode = receiptBills.get(0).receiptContainerCode; | ||
235 | + String locationCode = receiptBills.get(0).locationCode; | ||
236 | + String companyCode = receiptBills.get(0).getCompanyCode(); | ||
237 | + String receiptDetailId = receiptBills.get(0).getReceiptDetailId(); | ||
238 | + | ||
239 | + LambdaQueryWrapper<Container> containerQueryWrapper = Wrappers.lambdaQuery(); | ||
240 | + containerQueryWrapper.eq(Container::getCode, containerCode); | ||
241 | + Container container = containerService.getOne(containerQueryWrapper); | ||
242 | + if(container == null) { | ||
243 | + throw new JSONException("不存在这个托盘"); | ||
244 | + } | ||
245 | + if(locationCode.equals(container.getLocationCode())) { | ||
246 | + /* 查询未完成的入库任务*/ | ||
247 | + LambdaQueryWrapper<TaskHeader> taskQueryWrapper = Wrappers.lambdaQuery(); | ||
248 | + taskQueryWrapper.eq(TaskHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()) | ||
249 | + .in(TaskHeader::getTaskType, QuantityConstant.TASK_TYPE_WHOLERECEIPT, | ||
250 | + QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT) | ||
251 | + .lt(TaskHeader::getStatus, 100) | ||
252 | + .eq(TaskHeader::getContainerCode, containerCode); | ||
253 | + TaskHeader taskHeader = taskHeaderService.getOne(taskQueryWrapper); | ||
254 | + if(taskHeader == null) { | ||
255 | + throw new JSONException("没有找到托盘对应的任务"); | ||
256 | + } | ||
257 | + | ||
258 | + LambdaQueryWrapper<ReceiptDetail> receiptDetailQueryWrapper = Wrappers.lambdaQuery(); | ||
259 | + receiptDetailQueryWrapper.eq(ReceiptDetail::getId, receiptDetailId); | ||
260 | + ReceiptDetail receiptDetail = receiptDetailService.getOne(receiptDetailQueryWrapper); | ||
261 | + if(receiptDetail == null) { | ||
262 | + throw new JSONException("没有找到入库单详情"); | ||
263 | + } | ||
264 | + | ||
265 | + LambdaQueryWrapper<ReceiptHeader> receiptHeaderQueryWrapper = Wrappers.lambdaQuery(); | ||
266 | + receiptHeaderQueryWrapper.eq(ReceiptHeader::getId, receiptDetail.getReceiptId()); | ||
267 | + ReceiptHeader receiptHeader = receiptHeaderService.getOne(receiptHeaderQueryWrapper); | ||
268 | + if(receiptHeader == null) { | ||
269 | + throw new JSONException("没有找到入库单"); | ||
270 | + } | ||
271 | + | ||
272 | + LambdaQueryWrapper<ReceiptContainerHeader> lambda = Wrappers.lambdaQuery(); | ||
273 | + lambda.eq(ReceiptContainerHeader::getContainerCode, containerCode) | ||
274 | + .lt(ReceiptContainerHeader::getStatus, QuantityConstant.RECEIPT_CONTAINER_FINISHED); | ||
275 | + List<ReceiptContainerHeader> list = receiptContainerHeaderService.list(lambda); | ||
276 | + if (list.size() >= 1){ | ||
277 | + throw new ServiceException("容器已经生成任务,不能放物料了!"); | ||
278 | + } | ||
279 | + ReceiptContainerHeader receiptContainerHeader = new ReceiptContainerHeader(); | ||
280 | + //如果不存在记录则新建记录 | ||
281 | + receiptContainerHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); | ||
282 | + receiptContainerHeader.setCompanyCode(companyCode); | ||
283 | + receiptContainerHeader.setContainerCode(containerCode); | ||
284 | + Container container2 = containerService.findAllByCode(containerCode); | ||
285 | + receiptContainerHeader.setContainerType(container2.getContainerType()); | ||
286 | + receiptContainerHeader.setTaskType(String.valueOf(QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT)); | ||
287 | + receiptContainerHeader.setFromLocation(container2.getLocationCode()); | ||
288 | + receiptContainerHeader.setToLocation(locationCode); | ||
289 | + receiptContainerHeader.setCreatedBy(ShiroUtils.getLoginName()); | ||
290 | + receiptContainerHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); | ||
291 | + receiptContainerHeader.setStatus((short)10); | ||
292 | + | ||
293 | + if (!receiptContainerHeaderService.save(receiptContainerHeader)){ | ||
294 | + throw new ServiceException("入库组盘头表保存失败"); | ||
295 | + } | ||
296 | + | ||
297 | + receiptHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_RECEIVING); | ||
298 | + receiptHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_RECEIVING); | ||
299 | + receiptHeaderService.update(receiptHeader, receiptHeaderQueryWrapper); | ||
300 | + | ||
301 | + taskHeader.setAllocationHeadId(receiptContainerHeader.getId()); | ||
302 | + taskHeaderService.update(taskHeader, taskQueryWrapper); | ||
303 | + | ||
304 | + for(ReceiptBill receiptBill : receiptBills) { | ||
305 | + TaskDetail taskDetail = new TaskDetail(); | ||
306 | + taskDetail.setTaskId(taskHeader.getId()); | ||
307 | + taskDetail.setContainerCode(containerCode); | ||
308 | + taskDetail.setTaskType(taskHeader.getTaskType()); | ||
309 | + taskDetail.setInternalTaskType(taskHeader.getInternalTaskType()); | ||
310 | + taskDetail.setWarehouseCode(ShiroUtils.getWarehouseCode()); | ||
311 | + taskDetail.setCompanyCode(companyCode); | ||
312 | + taskDetail.setBillCode(receiptHeader.getCode()); | ||
313 | + taskDetail.setBillDetailId(Integer.parseInt(receiptBill.getReceiptDetailId())); | ||
314 | + taskDetail.setMaterialCode(receiptBill.getMaterialCode()); | ||
315 | + taskDetail.setMaterialName(receiptBill.getMaterialName()); | ||
316 | + taskDetail.setQty(receiptBill.getQty()); | ||
317 | + taskDetail.setFromLocation(taskHeader.getFromLocation()); | ||
318 | + taskDetail.setToLocation(taskHeader.getToLocation()); | ||
319 | + taskDetail.setStatus(taskHeader.getStatus()); | ||
320 | + taskDetail.setBatch(receiptBill.getBatch()); | ||
321 | + taskDetail.setCompanyCode(taskHeader.getCompanyCode()); | ||
322 | + taskDetailService.save(taskDetail); | ||
323 | + | ||
324 | + | ||
325 | + LambdaQueryWrapper<ReceiptDetail> receiptDetail2QueryWrapper = Wrappers.lambdaQuery(); | ||
326 | + receiptDetail2QueryWrapper.eq(ReceiptDetail::getId, receiptBill.getReceiptDetailId()); | ||
327 | + ReceiptDetail receiptDetail2 = receiptDetailService.getOne(receiptDetail2QueryWrapper); | ||
328 | + if(receiptDetail2 == null) { | ||
329 | + throw new JSONException("没有找到入库单详情"); | ||
330 | + } | ||
331 | + | ||
332 | + BigDecimal openQty = receiptDetail2.getOpenQty(); | ||
333 | + BigDecimal totalQty = receiptDetail2.getTotalQty(); | ||
334 | + BigDecimal qty = openQty.add(receiptBill.getQty()); | ||
335 | + if(totalQty.subtract(qty).compareTo(BigDecimal.ZERO) < 0) { | ||
336 | + throw new Exception("配盘数量大于表单数量"); | ||
337 | + } | ||
338 | + | ||
339 | + receiptDetail2.setOpenQty(qty); | ||
340 | + receiptDetailService.update(receiptDetail2, receiptDetail2QueryWrapper); | ||
341 | + | ||
342 | + ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail(); | ||
343 | + receiptContainerDetail.setReceiptContainerId(receiptContainerHeader.getId()); | ||
344 | + receiptContainerDetail.setWarehouseCode(ShiroUtils.getWarehouseCode()); | ||
345 | + receiptContainerDetail.setReceiptId(receiptHeader.getId()); | ||
346 | + receiptContainerDetail.setReceiptDetailId(receiptDetail2.getId()); | ||
347 | + receiptContainerDetail.setReceiptCode(receiptHeader.getCode()); | ||
348 | + receiptContainerDetail.setReceiptType(receiptHeader.getReceiptType()); | ||
349 | + receiptContainerDetail.setLocationCode(locationCode); | ||
350 | + receiptContainerDetail.setContainerCode(containerCode); | ||
351 | + receiptContainerDetail.setContainerType(container.getContainerType()); | ||
352 | + receiptContainerDetail.setCompanyCode(companyCode); | ||
353 | + | ||
354 | + LambdaQueryWrapper<Material> materialQueryWrapper = Wrappers.lambdaQuery(); | ||
355 | + materialQueryWrapper.eq(Material::getCode, receiptBill.getMaterialCode()) | ||
356 | + .eq(Material::getDeleted, 0); | ||
357 | + Material material = materialService.getOne(materialQueryWrapper); | ||
358 | + | ||
359 | + receiptContainerDetail.setMaterialCode(material.getCode()); | ||
360 | + receiptContainerDetail.setMaterialName(material.getName()); | ||
361 | + receiptContainerDetail.setMaterialSpec(material.getSpec()); | ||
362 | + receiptContainerDetail.setMaterialUnit(material.getUnit()); | ||
363 | + receiptContainerDetail.setQty(receiptBill.getQty()); | ||
364 | + receiptContainerDetail.setStatus(10); | ||
365 | + receiptContainerDetail.setCreatedBy(ShiroUtils.getLoginName()); | ||
366 | + receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); | ||
367 | + receiptContainerDetailService.save(receiptContainerDetail); | ||
368 | + } | ||
369 | + | ||
370 | + } else { | ||
371 | + /* ReceiptContainerView record = new ReceiptContainerView(); | ||
372 | + record.setReceiptContainerCode(receiptBills.get(0).getReceiptContainerCode()); | ||
373 | + record.setLocationCode(receiptBills.get(0).getLocationCode()); | ||
374 | + record.setTaskType((short)100); | ||
375 | + record.setCompanyCode(receiptBills.get(0).getCompanyCode()); | ||
376 | + receiptContainerHeaderService.checkContainer(record); | ||
377 | + receiptContainerHeaderService.mobileCheckLocationCode(record); | ||
378 | + int receiptHeaderId = receiptHeaderService.createTodayHeader(companyCode); | ||
379 | + ReceiptHeader receiptHeader = receiptHeaderService.getById(receiptHeaderId); | ||
380 | + List<Integer> receiptDetailIds = receiptDetailService.insertTodayReceiptDetail(receiptHeaderId, receiptBills, true, companyCode); | ||
381 | + if(receiptDetailIds != null && receiptDetailIds.size() > 0) { | ||
382 | + int containerHeaderId = receiptContainerHeaderService.insertTodayReceiptContainerHeader(receiptBills.get(0), receiptHeader.getCode()); | ||
383 | + if(containerHeaderId > 0) { | ||
384 | + List<Integer> receiptContainerDetailIds = receiptContainerDetailService.insertTodayReceiptcContainerDetail(containerHeaderId, receiptHeaderId, receiptDetailIds, receiptBills); | ||
385 | + if(receiptContainerDetailIds != null && receiptContainerDetailIds.size() > 0) { | ||
386 | + | ||
387 | + } else { | ||
388 | + return AjaxResult.error("入库组盘失败"); | ||
389 | + } | ||
390 | + } else { | ||
391 | + return AjaxResult.error("插入入库容器表单头失败"); | ||
392 | + } | ||
393 | + } else { | ||
394 | + return AjaxResult.error("插入入库明细表单失败"); | ||
395 | + } */ | ||
396 | + } | ||
397 | + return AjaxResult.success("收货成功"); | ||
398 | + } | ||
399 | + | ||
400 | + @PostMapping("/findReceipt") | ||
401 | + @ApiOperation("移动端查询入库单") | ||
402 | + @Log(title = "移动端查询入库单", action = BusinessType.OTHER) | ||
403 | + public AjaxResult findReceipt(@RequestBody @ApiParam(value = "物料号") Map<String, String> param){ | ||
404 | + String receiptCode = param.get("receiptCode"); | ||
405 | + String companyCode = param.get("companyCode"); | ||
406 | + if (StringUtils.isNull(receiptCode)){ | ||
407 | + return AjaxResult.error("上游系统关联单号为空"); | ||
408 | + } else if (StringUtils.isNull(companyCode)){ | ||
409 | + return AjaxResult.error("公司编码为空"); | ||
410 | + } | ||
411 | +// else if (StringUtils.isNull(referType)) { | ||
412 | +// return AjaxResult.error("上游系统关联单类型为空"); | ||
413 | +// } | ||
414 | + | ||
415 | + /* 查询入库单,如果数据库中不存在,则调用ERP接口拉取单据,成功后再次查询返回结果*/ | ||
416 | + LambdaQueryWrapper<ReceiptHeader> receiptLambdaQueryWrapper = Wrappers.lambdaQuery(); | ||
417 | + receiptLambdaQueryWrapper.eq(ReceiptHeader::getCode, receiptCode) | ||
418 | + .eq(ReceiptHeader::getCompanyCode, companyCode); | ||
419 | + ReceiptHeader receiptHeader = receiptHeaderService.getOne(receiptLambdaQueryWrapper); | ||
420 | + if(receiptHeader == null) { | ||
421 | + return AjaxResult.error("没有找到入库单"); | ||
422 | + } | ||
423 | + ReceiptDomain receipt = new ReceiptDomain(); | ||
424 | + receipt.setReceiptHeader(receiptHeader); | ||
425 | + | ||
426 | + LambdaQueryWrapper<ReceiptDetail> receiptDetailQueryWrapper = Wrappers.lambdaQuery(); | ||
427 | + receiptDetailQueryWrapper.eq(ReceiptDetail::getReceiptId, receiptHeader.getId()); | ||
428 | + List<ReceiptDetail> receiptDetailList = receiptDetailService.list(receiptDetailQueryWrapper); | ||
429 | + receipt.setReceiptDetails(receiptDetailList); | ||
430 | + return AjaxResult.success(receipt); | ||
431 | + } | ||
432 | + | ||
433 | + @PostMapping("/callBox") | ||
434 | + @ApiOperation("移动端呼叫料盒") | ||
435 | + @Log(title = "移动端呼叫料盒", action = BusinessType.OTHER) | ||
436 | + @Transactional(rollbackFor = Exception.class) | ||
437 | + public AjaxResult callBox(@RequestBody @ApiParam(value = "物料号") Map<String, String> param) { | ||
438 | + String containerCode = param.get("containerCode"); | ||
439 | + String destinationLocation = param.get("destinationLocation"); | ||
440 | + int type = Integer.parseInt(param.get("type")); | ||
441 | + String companyCode = param.get("companyCode"); | ||
442 | + Container container = new Container(); | ||
443 | + container.setCode(containerCode); | ||
444 | + container.setWarehouseCode(ShiroUtils.getWarehouseCode()); | ||
445 | + LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(container); | ||
446 | + container = containerService.getOne(lambdaQueryWrapper); | ||
447 | + if(container==null) { | ||
448 | + return AjaxResult.error("容器不存在"); | ||
449 | + } | ||
450 | + if (!StringUtils.isNotEmpty(container.getLocationCode())) { | ||
451 | + return AjaxResult.error("容器不在库位[" + container.getLocationCode() + "]上"); | ||
452 | + } | ||
453 | + if(!container.getLocationCode().equals(destinationLocation)) { | ||
454 | + return AjaxResult.error("容器不在目的库位上"); | ||
455 | + } | ||
456 | + Location temp = new Location(); | ||
457 | + temp.setCode(destinationLocation); | ||
458 | + temp.setWarehouseCode(ShiroUtils.getWarehouseCode()); | ||
459 | + LambdaQueryWrapper lambda = Wrappers.lambdaQuery(temp); | ||
460 | + Location loc = locationService.getOne(lambda); | ||
461 | + if(StringUtils.isNotEmpty(destinationLocation)) { | ||
462 | + //校验目标地址 | ||
463 | + if (loc == null) { | ||
464 | + return AjaxResult.error("目标库位不存在"); | ||
465 | + } | ||
466 | + if (!loc.getStatus().equals("empty")) { | ||
467 | + return AjaxResult.error("目标库位非空闲"); | ||
468 | + } | ||
469 | + } | ||
470 | + //判断托盘是否已经存在任务 | ||
471 | + LambdaQueryWrapper<TaskHeader> headerQueryWrapper = Wrappers.lambdaQuery(); | ||
472 | + headerQueryWrapper.ne(TaskHeader::getStatus, 100) | ||
473 | + .eq(TaskHeader::getContainerCode, containerCode); | ||
474 | + Integer taskCount = taskHeaderService.count(headerQueryWrapper); | ||
475 | + if (taskCount != null && taskCount.intValue() > 0) { | ||
476 | + return AjaxResult.error("容器已存在任务"); | ||
477 | + } | ||
478 | + | ||
479 | + //创建主任务 | ||
480 | + TaskHeader taskHeader = new TaskHeader(); | ||
481 | + taskHeader.setWarehouseCode(loc.getWarehouseCode()); | ||
482 | + taskHeader.setCompanyCode(companyCode);//货主 | ||
483 | + if(type == 200) { | ||
484 | + taskHeader.setInternalTaskType(QuantityConstant.TASK_INTENERTYPE_SHELF); | ||
485 | + taskHeader.setTaskType(QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT); | ||
486 | + } else { | ||
487 | + taskHeader.setInternalTaskType(QuantityConstant.TASK_INTENERTYPE_PICKING); | ||
488 | + taskHeader.setTaskType(QuantityConstant.TASK_TYPE_SORTINGSHIPMENT); | ||
489 | + } | ||
490 | + taskHeader.setContainerCode(container.getCode()); | ||
491 | + taskHeader.setStatus(QuantityConstant.TASK_STATUS_BUILD); | ||
492 | + taskHeader.setFromLocation(loc.getCode()); | ||
493 | + taskHeader.setToLocation(loc.getCode()); | ||
494 | + taskHeader.setCreated(new Date()); | ||
495 | + taskHeader.setCreatedBy(ShiroUtils.getLoginName()); | ||
496 | + taskHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); | ||
497 | + taskHeader.setLastUpdated(new Date()); | ||
498 | + if(taskHeaderService.save(taskHeader)){ | ||
499 | + //锁定库位状态 | ||
500 | + locationService.updateStatus(loc.getContainerCode(),"lock"); | ||
501 | + }else{ | ||
502 | + throw new ServiceException("补充入库主表生成失败!"); | ||
503 | + } | ||
504 | + | ||
505 | + return AjaxResult.success(taskHeader.getId()); | ||
506 | + } | ||
507 | +} |
src/main/java/com/huaheng/mobile/receipt/MobileOneByOneReceiptController.java
0 → 100644
1 | +package com.huaheng.mobile.receipt; | ||
2 | + | ||
3 | +import com.huaheng.framework.aspectj.lang.annotation.Log; | ||
4 | +import com.huaheng.framework.aspectj.lang.constant.BusinessType; | ||
5 | +import com.huaheng.framework.web.domain.AjaxResult; | ||
6 | +import com.huaheng.pc.receipt.receiptContainerHeader.domain.ReceiptContainerView; | ||
7 | +import com.huaheng.pc.receipt.receiptContainerHeader.service.ReceiptContainerHeaderService; | ||
8 | +import io.swagger.annotations.Api; | ||
9 | +import io.swagger.annotations.ApiOperation; | ||
10 | +import io.swagger.annotations.ApiParam; | ||
11 | +import org.springframework.web.bind.annotation.*; | ||
12 | + | ||
13 | +import javax.annotation.Resource; | ||
14 | +import java.math.BigDecimal; | ||
15 | + | ||
16 | +/** | ||
17 | + * | ||
18 | + * @author Enzo Cotter | ||
19 | + * @date 2019/12/16 | ||
20 | + */ | ||
21 | +@CrossOrigin | ||
22 | +@RestController | ||
23 | +@RequestMapping("/mobile/receipt/oneByOne") | ||
24 | +@Api(tags = {"MobileOneByOneReceiptController"}, description = "移动端逐件收货") | ||
25 | +public class MobileOneByOneReceiptController { | ||
26 | + | ||
27 | + @Resource | ||
28 | + private ReceiptContainerHeaderService receiptContainerHeaderService; | ||
29 | + | ||
30 | + @PostMapping("/save") | ||
31 | + @ApiOperation("移动端逐件收货保存") | ||
32 | + @Log(title = "移动端逐件收货保存", action = BusinessType.OTHER) | ||
33 | + public AjaxResult save(@RequestBody @ApiParam(value="容器号") ReceiptContainerView record) throws Exception { | ||
34 | + record.setQty(new BigDecimal("1")); | ||
35 | + AjaxResult retResult = receiptContainerHeaderService.saveCountain(record.getReceiptCode(), record.getReceiptContainerCode(), | ||
36 | + record.getReceiptDetailId(), record.getLocationCode(), record.getQty().intValue(), null); | ||
37 | + return retResult; | ||
38 | + } | ||
39 | +} |
src/main/java/com/huaheng/mobile/receipt/MobilePutawayController.java
0 → 100644
1 | +package com.huaheng.mobile.receipt; | ||
2 | + | ||
3 | +import com.alibaba.fastjson.JSONException; | ||
4 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||
5 | +import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||
6 | +import com.huaheng.common.utils.security.ShiroUtils; | ||
7 | +import com.huaheng.framework.aspectj.lang.annotation.Log; | ||
8 | +import com.huaheng.framework.aspectj.lang.constant.BusinessType; | ||
9 | +import com.huaheng.framework.web.domain.AjaxResult; | ||
10 | +import com.huaheng.pc.config.location.domain.Location; | ||
11 | +import com.huaheng.pc.config.location.service.LocationService; | ||
12 | +import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; | ||
13 | +import io.swagger.annotations.Api; | ||
14 | +import io.swagger.annotations.ApiOperation; | ||
15 | +import io.swagger.annotations.ApiParam; | ||
16 | +import org.springframework.web.bind.annotation.PostMapping; | ||
17 | +import org.springframework.web.bind.annotation.RequestBody; | ||
18 | +import org.springframework.web.bind.annotation.RequestMapping; | ||
19 | +import org.springframework.web.bind.annotation.RestController; | ||
20 | + | ||
21 | +import javax.annotation.Resource; | ||
22 | +import java.util.Map; | ||
23 | + | ||
24 | +/** | ||
25 | + * | ||
26 | + * @author Enzo Cotter | ||
27 | + * @date 2019/12/16 | ||
28 | + */ | ||
29 | +@RestController | ||
30 | +@RequestMapping("/mobile/putaway/execute") | ||
31 | +@Api(tags = {"MobilePutawayController"}, description = "手机收货上架") | ||
32 | +public class MobilePutawayController { | ||
33 | + | ||
34 | + @Resource | ||
35 | + private TaskHeaderService taskService; | ||
36 | + @Resource | ||
37 | + private LocationService locationService; | ||
38 | + | ||
39 | +// @PostMapping("/createReceiptTask") | ||
40 | +// @ApiOperation("手机扫描容器收货上架") | ||
41 | +// @Log(title = "手机扫描容器收货上架", action = BusinessType.OTHER) | ||
42 | +// public AjaxResult createReceiptTask(@RequestBody @ApiParam(value="容器号") Map<String, String> param) throws Exception { | ||
43 | +// if (param.get("containerCode") == null || param.get("containerCode").trim().length() < 1) { | ||
44 | +// throw new JSONException("容器号(containerCode)不能为空"); | ||
45 | +// } | ||
46 | +// return AjaxResult retResult = taskService.mobileCreateReceiptTask(param.get("containerCode"), "L10-27-01"); | ||
47 | +// } | ||
48 | + | ||
49 | + @PostMapping("/getLocationFromContainer") | ||
50 | + @ApiOperation("手机扫描容器获得库位号") | ||
51 | + @Log(title = "手机扫描容器获得库位号", action = BusinessType.OTHER) | ||
52 | + public AjaxResult getLocationFromContainer(@RequestBody @ApiParam(value="容器号") Map<String, String> param) throws Exception { | ||
53 | + if (param.get("containerCode") == null || param.get("containerCode").trim().length() < 1) { | ||
54 | + throw new JSONException("容器号(containerCode)不能为空"); | ||
55 | + } | ||
56 | + LambdaQueryWrapper<Location> queryWrapper = Wrappers.lambdaQuery(); | ||
57 | + queryWrapper.eq(Location::getWarehouseCode, ShiroUtils.getWarehouseCode()) | ||
58 | + .eq(Location::getDeleted, false) | ||
59 | + .eq(Location::getContainerCode, param.get("containerCode")); | ||
60 | + Location location = locationService.getOne(queryWrapper); | ||
61 | + if(location == null) { | ||
62 | + AjaxResult.error("没有该库位"); | ||
63 | + } | ||
64 | + return AjaxResult.success("获取成功",location.getCode()); | ||
65 | + } | ||
66 | + | ||
67 | + @PostMapping("/createQuickTask") | ||
68 | + @ApiOperation("手机扫描容器收货上架") | ||
69 | + @Log(title = "手机扫描容器收货上架", action = BusinessType.OTHER) | ||
70 | + public AjaxResult createQuickTask(@RequestBody @ApiParam(value="容器号") Map<String, String> param) throws Exception { | ||
71 | + if (param.get("containerCode") == null || param.get("containerCode").trim().length() < 1) { | ||
72 | + throw new JSONException("容器号(containerCode)不能为空"); | ||
73 | + } | ||
74 | + | ||
75 | + AjaxResult retResult = taskService.createQuickTask(param.get("containerCode")); | ||
76 | + return retResult; | ||
77 | + } | ||
78 | + | ||
79 | + @PostMapping("/scanLocationCode") | ||
80 | + @ApiOperation("手机扫描库位收货上架") | ||
81 | + @Log(title = "手机扫描库位收货上架", action = BusinessType.OTHER) | ||
82 | + public AjaxResult scanLocationCode(@RequestBody @ApiParam(value="库位编码") Map<String, String> param) throws Exception { | ||
83 | + if (param.get("locationCode") == null || param.get("locationCode").trim().length() < 1) { | ||
84 | + throw new JSONException("库位号(locationCode)不能为空"); | ||
85 | + } | ||
86 | + AjaxResult retResult = taskService.completeTask(param.get("locationCode")); | ||
87 | + return retResult; | ||
88 | + } | ||
89 | + | ||
90 | + @PostMapping("/createReplenishTask") | ||
91 | + @ApiOperation("手机扫描容器创建补充入库任务") | ||
92 | + @Log(title = "手机扫描容器创建补充入库任务", action = BusinessType.OTHER) | ||
93 | + public AjaxResult createReplenishTask(@RequestBody @ApiParam(value="容器号") Map<String, String> param) throws Exception { | ||
94 | + if (param.get("containerCode") == null || param.get("containerCode").trim().length() < 1) { | ||
95 | + throw new JSONException("容器号(containerCode)不能为空"); | ||
96 | + } | ||
97 | + AjaxResult retResult = taskService.createReplenishTask(param.get("containerCode"), (short)1); | ||
98 | + return retResult; | ||
99 | + } | ||
100 | +} |
src/main/java/com/huaheng/mobile/receipt/ReceiptBill.java
0 → 100644
1 | +package com.huaheng.mobile.receipt; | ||
2 | + | ||
3 | +import lombok.Data; | ||
4 | + | ||
5 | +import java.math.BigDecimal; | ||
6 | + | ||
7 | +/** | ||
8 | + * | ||
9 | + * @author Enzo Cotter | ||
10 | + * @date 2019/12/15 | ||
11 | + */ | ||
12 | +@Data | ||
13 | +public class ReceiptBill { | ||
14 | + /** 容器编码 */ | ||
15 | + String receiptContainerCode; | ||
16 | + /** 物料code */ | ||
17 | + String materialCode; | ||
18 | + /** 收货数量 */ | ||
19 | + BigDecimal qty; | ||
20 | + /** 库位编码 */ | ||
21 | + String locationCode; | ||
22 | + /** 批次号 */ | ||
23 | + String batch; | ||
24 | + /** 项目号 */ | ||
25 | + String project; | ||
26 | + | ||
27 | + String receiptDetailId; | ||
28 | + | ||
29 | + /** 货主Code */ | ||
30 | + String companyCode; | ||
31 | + /** 重量 */ | ||
32 | + String weight; | ||
33 | + String materialName; | ||
34 | +} |
src/main/java/com/huaheng/mobile/receipt/ReceiptResult.java
0 → 100644
src/main/java/com/huaheng/mobile/shipment/Materialforecast.java
0 → 100644
1 | +package com.huaheng.mobile.shipment; | ||
2 | + | ||
3 | +/** | ||
4 | + * | ||
5 | + * @author Enzo Cotter | ||
6 | + * @date 2019/12/16 | ||
7 | + */ | ||
8 | +public class Materialforecast { | ||
9 | + | ||
10 | + private String materialCode; | ||
11 | + private String materialName; | ||
12 | + private String specification; | ||
13 | + private int type; | ||
14 | + | ||
15 | + public String getMaterialCode() { | ||
16 | + return materialCode; | ||
17 | + } | ||
18 | + | ||
19 | + public void setMaterialCode(String materialCode) { | ||
20 | + this.materialCode = materialCode; | ||
21 | + } | ||
22 | + | ||
23 | + public String getMaterialName() { | ||
24 | + return materialName; | ||
25 | + } | ||
26 | + | ||
27 | + public void setMaterialName(String materialName) { | ||
28 | + this.materialName = materialName; | ||
29 | + } | ||
30 | + | ||
31 | + public int getType() { | ||
32 | + return type; | ||
33 | + } | ||
34 | + | ||
35 | + public void setType(int type) { | ||
36 | + this.type = type; | ||
37 | + } | ||
38 | + | ||
39 | + public String getSpecification() { | ||
40 | + return specification; | ||
41 | + } | ||
42 | + | ||
43 | + public void setSpecification(String specification) { | ||
44 | + this.specification = specification; | ||
45 | + } | ||
46 | + | ||
47 | + @Override | ||
48 | + public String toString() { | ||
49 | + return "Materialforecast{" + | ||
50 | + "materialCode='" + materialCode + '\'' + | ||
51 | + ", materialName='" + materialName + '\'' + | ||
52 | + ", specification='" + specification + '\'' + | ||
53 | + ", type=" + type + | ||
54 | + '}'; | ||
55 | + } | ||
56 | +} |
src/main/java/com/huaheng/mobile/shipment/MobileShipmentController.java
0 → 100644
1 | +package com.huaheng.mobile.shipment; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||
4 | +import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||
5 | +import com.huaheng.common.utils.StringUtils; | ||
6 | +import com.huaheng.common.utils.security.ShiroUtils; | ||
7 | +import com.huaheng.framework.aspectj.lang.annotation.Log; | ||
8 | +import com.huaheng.framework.aspectj.lang.constant.BusinessType; | ||
9 | +import com.huaheng.framework.web.controller.BaseController; | ||
10 | +import com.huaheng.framework.web.domain.AjaxResult; | ||
11 | +import com.huaheng.mobile.invenory.TaskIds; | ||
12 | +import com.huaheng.pc.config.company.domain.Company; | ||
13 | +import com.huaheng.pc.config.company.service.CompanyService; | ||
14 | +import com.huaheng.pc.shipment.shipmentContainerHeader.service.ShipmentContainerHeaderService; | ||
15 | +import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; | ||
16 | +import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailService; | ||
17 | +import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; | ||
18 | +import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService; | ||
19 | +import com.huaheng.pc.task.taskHeader.domain.ShipmentTaskCreateModel; | ||
20 | +import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; | ||
21 | +import io.swagger.annotations.ApiParam; | ||
22 | +import org.springframework.beans.factory.annotation.Autowired; | ||
23 | +import org.springframework.transaction.annotation.Transactional; | ||
24 | +import org.springframework.web.bind.annotation.*; | ||
25 | + | ||
26 | +import javax.annotation.Resource; | ||
27 | +import java.util.ArrayList; | ||
28 | +import java.util.List; | ||
29 | +import java.util.Map; | ||
30 | + | ||
31 | +/** | ||
32 | + * @author mahua | ||
33 | + * @ClassName MobileShipmentController | ||
34 | + * @projectName wms_xinyi | ||
35 | + * @description: TODO | ||
36 | + * @date 2020/2/1115:29 | ||
37 | + */ | ||
38 | +@RestController | ||
39 | +@RequestMapping("/mobile/shipment") | ||
40 | +public class MobileShipmentController extends BaseController { | ||
41 | + @Resource | ||
42 | + private ShipmentHeaderService shipmentHeaderService; | ||
43 | + @Resource | ||
44 | + private ShipmentDetailService shipmentDetailService; | ||
45 | + @Resource | ||
46 | + private ShipmentContainerHeaderService shipmentContainerHeaderService; | ||
47 | + @Resource | ||
48 | + private CompanyService companyService; | ||
49 | + @Autowired | ||
50 | + private TaskHeaderService taskHeaderService; | ||
51 | + | ||
52 | + /** | ||
53 | + * 查询出库单主列表 | ||
54 | + */ | ||
55 | + @Log(title = "出库-出库单", operating="查看出库主单", action = BusinessType.GRANT) | ||
56 | + @PostMapping("/list") | ||
57 | + public AjaxResult list(@RequestBody @ApiParam(value = "出库单号-referCode、货主编码-companyCode、出库单类型-shipmentType") Map<String, String> param) { | ||
58 | + if (StringUtils.isEmpty(param.get("companyCode"))) { | ||
59 | + return AjaxResult.error("上游系统单号为空"); | ||
60 | + } else if (StringUtils.isEmpty(param.get("shipmentType"))) { | ||
61 | + return AjaxResult.error("类型为空"); | ||
62 | + } else if (StringUtils.isEmpty(param.get("referCode"))) { | ||
63 | + return AjaxResult.error("上游系统单号为空"); | ||
64 | + } | ||
65 | + LambdaQueryWrapper<ShipmentHeader> lambdaQueryWrapper = Wrappers.lambdaQuery(); | ||
66 | + lambdaQueryWrapper.eq(ShipmentHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()) | ||
67 | + .eq(ShipmentHeader::getDeleted,false) | ||
68 | + .in(ShipmentHeader::getCompanyCode, param.get("companyCode")) | ||
69 | + .eq(ShipmentHeader::getShipmentType,param.get("shipmentType")) | ||
70 | + .eq(ShipmentHeader::getReferCode, param.get("referCode")) | ||
71 | + .orderByDesc(ShipmentHeader::getId); | ||
72 | + ShipmentHeader shipmentHeader = shipmentHeaderService.getOne(lambdaQueryWrapper); | ||
73 | + | ||
74 | + if (shipmentHeader == null) { | ||
75 | +// LambdaQueryWrapper<Company> lambdaQueryWrapper1 = Wrappers.lambdaQuery(); | ||
76 | +// lambdaQueryWrapper1.eq(Company::getCode, param.get("companyCode")); | ||
77 | +// Company company = companyService.getOne(lambdaQueryWrapper1); | ||
78 | +// shipmentHeaderService.findErpShipment(String.valueOf(company.getId()), param.get("shipmentType"), param.get("referCode")); | ||
79 | +// shipmentHeader = shipmentHeaderService.getOne(lambdaQueryWrapper); | ||
80 | + return AjaxResult.error("没有找到出库单"); | ||
81 | + } | ||
82 | + LambdaQueryWrapper<ShipmentDetail> detailLambdaQueryWrapper = Wrappers.lambdaQuery(); | ||
83 | + detailLambdaQueryWrapper.eq(ShipmentDetail::getShipmentId, shipmentHeader.getId()); | ||
84 | + Shipment shipment = new Shipment(); | ||
85 | + shipment.setShipmentHeader(shipmentHeader); | ||
86 | + List<ShipmentDetail> shipmentDetailList = shipmentDetailService.list(detailLambdaQueryWrapper); | ||
87 | + shipment.setShipmentDetailList(shipmentDetailList); | ||
88 | + return AjaxResult.success(shipment); | ||
89 | + } | ||
90 | + | ||
91 | + /** | ||
92 | + * 自动组盘 | ||
93 | + */ | ||
94 | + @PostMapping("/autoCombination") | ||
95 | + @ResponseBody | ||
96 | + public AjaxResult autoCombination(@RequestBody Map<String, String> param){ | ||
97 | + String shipmentCode = param.get("shipmentCode"); | ||
98 | + AjaxResult ajaxResult = shipmentContainerHeaderService.autoCombination(shipmentCode); | ||
99 | + return ajaxResult; | ||
100 | + } | ||
101 | + | ||
102 | + /** | ||
103 | + * 根据出库单号生成出库任务 | ||
104 | + */ | ||
105 | + @PostMapping("/createShipmentTask") | ||
106 | + @ResponseBody | ||
107 | + @Transactional(rollbackFor = Exception.class) | ||
108 | + public AjaxResult createShipmentTask(@RequestBody List<TaskIds> taskDetails){ | ||
109 | + ShipmentTaskCreateModel shipmentTask = new ShipmentTaskCreateModel(); | ||
110 | + List<Integer> taskIds = new ArrayList<>(); | ||
111 | + for (TaskIds task : taskDetails) { | ||
112 | + shipmentTask.setShipmentContainerHeaderIds(task.getTaskId()); | ||
113 | + AjaxResult ajaxResult = taskHeaderService.createTaskFromShipmentContainers(shipmentTask); | ||
114 | + if(ajaxResult.hasErr()){ | ||
115 | + return ajaxResult; | ||
116 | + } | ||
117 | + Integer taskId = (Integer)ajaxResult.getData(); | ||
118 | + taskIds.add(taskId); | ||
119 | + } | ||
120 | + return AjaxResult.success(taskIds); | ||
121 | + } | ||
122 | + | ||
123 | + | ||
124 | +} |
src/main/java/com/huaheng/mobile/shipment/MobileTaskForASRSController.java
0 → 100644
1 | +package com.huaheng.mobile.shipment; | ||
2 | + | ||
3 | +import com.alibaba.fastjson.JSONException; | ||
4 | +import com.huaheng.framework.aspectj.lang.annotation.Log; | ||
5 | +import com.huaheng.framework.aspectj.lang.constant.BusinessType; | ||
6 | +import com.huaheng.framework.web.domain.AjaxResult; | ||
7 | +import com.huaheng.pc.config.material.service.MaterialService; | ||
8 | +import com.huaheng.pc.task.taskDetail.service.TaskDetailService; | ||
9 | +import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; | ||
10 | +import io.swagger.annotations.Api; | ||
11 | +import io.swagger.annotations.ApiOperation; | ||
12 | +import io.swagger.annotations.ApiParam; | ||
13 | +import org.springframework.web.bind.annotation.*; | ||
14 | + | ||
15 | +import javax.annotation.Resource; | ||
16 | +import java.util.List; | ||
17 | +import java.util.Map; | ||
18 | + | ||
19 | +/** | ||
20 | + * | ||
21 | + * @author Enzo Cotter | ||
22 | + * @date 2019/12/16 | ||
23 | + */ | ||
24 | +@CrossOrigin | ||
25 | +@RestController | ||
26 | +@RequestMapping("/mobile/task/taskForASRS") | ||
27 | +@Api(tags = {"MobileTaskForASRSController"}, description = "手机立体库任务拣货相关") | ||
28 | +public class MobileTaskForASRSController { | ||
29 | + | ||
30 | + | ||
31 | + @Resource | ||
32 | + private TaskHeaderService taskHeaderService; | ||
33 | + @Resource | ||
34 | + private TaskDetailService taskDetailService; | ||
35 | + @Resource | ||
36 | + private MaterialService materialService; | ||
37 | + | ||
38 | + @PostMapping("/getMaterialForecast") | ||
39 | + @ApiOperation("获得物料联想词") | ||
40 | + @Log(title = "获得物料联想词", action = BusinessType.OTHER) | ||
41 | + public AjaxResult getMaterialForecast(@RequestBody @ApiParam(value="物料号") Map<String, String> param) { | ||
42 | + if (param.get("code") == null || param.get("code").trim().length() < 1) { | ||
43 | + throw new JSONException("容器号(code)不能为空"); | ||
44 | + } | ||
45 | + List<Materialforecast> forecasts = materialService.getMaterialForecast(param.get("code")); | ||
46 | + return AjaxResult.success(""); | ||
47 | + } | ||
48 | +} | ||
0 | \ No newline at end of file | 49 | \ No newline at end of file |
src/main/java/com/huaheng/mobile/shipment/Shipment.java
0 → 100644
1 | +package com.huaheng.mobile.shipment; | ||
2 | + | ||
3 | +import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; | ||
4 | +import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; | ||
5 | +import lombok.Data; | ||
6 | + | ||
7 | +import java.io.Serializable; | ||
8 | +import java.util.List; | ||
9 | + | ||
10 | +/** | ||
11 | + * @author mahua | ||
12 | + * @ClassName Shipment | ||
13 | + * @projectName wms_xinyi | ||
14 | + * @description: TODO | ||
15 | + * @date 2020/2/1115:46 | ||
16 | + */ | ||
17 | +@Data | ||
18 | +public class Shipment implements Serializable { | ||
19 | + | ||
20 | + private ShipmentHeader shipmentHeader; | ||
21 | + | ||
22 | + private List<ShipmentDetail> shipmentDetailList; | ||
23 | + | ||
24 | +} |
src/main/java/com/huaheng/mobile/shipment/ShipmentBill.java
0 → 100644
1 | +package com.huaheng.mobile.shipment; | ||
2 | + | ||
3 | +import java.math.BigDecimal; | ||
4 | + | ||
5 | +/** | ||
6 | + * 出库单据 | ||
7 | + * @author Enzo Cotter | ||
8 | + * @date 2019/12/16 | ||
9 | + */ | ||
10 | +public class ShipmentBill { | ||
11 | + | ||
12 | + /** 物料code */ | ||
13 | + private String materialCode; | ||
14 | + /** 出库数量 */ | ||
15 | + private BigDecimal qty; | ||
16 | + /** 货主id */ | ||
17 | + private String companyId; | ||
18 | + /** 货主code */ | ||
19 | + private String companyCode; | ||
20 | + /** 货架*/ | ||
21 | + private String location; | ||
22 | + /**接收点-工位*/ | ||
23 | + private int point; | ||
24 | + | ||
25 | + public String getMaterialCode() { | ||
26 | + return materialCode; | ||
27 | + } | ||
28 | + | ||
29 | + public void setMaterialCode(String materialCode) { | ||
30 | + this.materialCode = materialCode; | ||
31 | + } | ||
32 | + | ||
33 | + public BigDecimal getQty() { | ||
34 | + return qty; | ||
35 | + } | ||
36 | + | ||
37 | + public void setQty(BigDecimal qty) { | ||
38 | + this.qty = qty; | ||
39 | + } | ||
40 | + | ||
41 | + public String getCompanyId() { | ||
42 | + return companyId; | ||
43 | + } | ||
44 | + | ||
45 | + public void setCompanyId(String companyId) { | ||
46 | + this.companyId = companyId; | ||
47 | + } | ||
48 | + | ||
49 | + public String getCompanyCode() { | ||
50 | + return companyCode; | ||
51 | + } | ||
52 | + | ||
53 | + public void setCompanyCode(String companyCode) { | ||
54 | + this.companyCode = companyCode; | ||
55 | + } | ||
56 | + | ||
57 | + public String getLocation() { | ||
58 | + return location; | ||
59 | + } | ||
60 | + | ||
61 | + public void setLocation(String location) { | ||
62 | + this.location = location; | ||
63 | + } | ||
64 | + | ||
65 | + public int getPoint() { | ||
66 | + return point; | ||
67 | + } | ||
68 | + | ||
69 | + public void setPoint(int point) { | ||
70 | + this.point = point; | ||
71 | + } | ||
72 | + | ||
73 | + @Override | ||
74 | + public String toString() { | ||
75 | + return "ShipmentBill{" + | ||
76 | + "materialCode='" + materialCode + '\'' + | ||
77 | + ", qty=" + qty + | ||
78 | + ", companyId='" + companyId + '\'' + | ||
79 | + ", companyCode='" + companyCode + '\'' + | ||
80 | + ", location='" + location + '\'' + | ||
81 | + ", point=" + point + | ||
82 | + '}'; | ||
83 | + } | ||
84 | +} |
src/main/java/com/huaheng/mobile/shipment/ShipmentTaskModel.java
0 → 100644
1 | +package com.huaheng.mobile.shipment; | ||
2 | + | ||
3 | +/** | ||
4 | + * | ||
5 | + * @author Enzo Cotter | ||
6 | + * @date 2019/12/16 | ||
7 | + */ | ||
8 | +public class ShipmentTaskModel { | ||
9 | + | ||
10 | + /** | ||
11 | + * 需要创建任务的出库货箱列表 | ||
12 | + */ | ||
13 | + private int[] shipmentContainerHeaderIds; | ||
14 | + /** | ||
15 | + * 是否优先创建整出任务,1,表示可以创建整出就优先创建整出,不能的话就创建拣选出;2,表示只创建拣选出; | ||
16 | + */ | ||
17 | + private int taskType; | ||
18 | + | ||
19 | + /** | ||
20 | + * 优先级 | ||
21 | + */ | ||
22 | + private short priority; | ||
23 | + | ||
24 | + public short getPriority() { | ||
25 | + return priority; | ||
26 | + } | ||
27 | + | ||
28 | + public void setPriority(short priority) { | ||
29 | + this.priority = priority; | ||
30 | + } | ||
31 | + | ||
32 | + public int[] getShipmentContainerHeaderIds() { | ||
33 | + return shipmentContainerHeaderIds; | ||
34 | + } | ||
35 | + | ||
36 | + public void setShipmentContainerHeaderIds(int[] shipmentContainerHeaderIds) { | ||
37 | + this.shipmentContainerHeaderIds = shipmentContainerHeaderIds; | ||
38 | + } | ||
39 | + | ||
40 | + public int getTaskType() { | ||
41 | + return taskType; | ||
42 | + } | ||
43 | + | ||
44 | + public void setTaskType(int taskType) { | ||
45 | + this.taskType = taskType; | ||
46 | + } | ||
47 | +} |
src/main/java/com/huaheng/pc/common/mapper/ApkMapper.java
0 → 100644
1 | +package com.huaheng.pc.common.mapper; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||
4 | +import com.huaheng.mobile.download.ApkInfo; | ||
5 | +import org.apache.ibatis.annotations.Param; | ||
6 | + | ||
7 | +import java.util.List; | ||
8 | + | ||
9 | +public interface ApkMapper extends BaseMapper<ApkInfo> { | ||
10 | + | ||
11 | + | ||
12 | + // @Select("select * from apkinfo where pkgName=#{pkgName}") | ||
13 | + List<ApkInfo> getApkInfoByPkgName(String pkgName); | ||
14 | + | ||
15 | + // @Options(useGeneratedKeys = true, keyProperty = "id") | ||
16 | + // @Insert("insert into apkinfo(pkgName, versionCode, versionName, url, md5) values(#{pkgName},#{versionCode},#{versionName},#{url},#{md5})") | ||
17 | + int insertApkInfo(@Param("pkgName") String pkgName, @Param("versionCode") int versionCode, @Param("versionName") String versionName, @Param("url") String url, @Param("md5") String md5); | ||
18 | + | ||
19 | + // @Options(useGeneratedKeys = true, keyProperty = "id") | ||
20 | + // @Insert("delete from apkinfo") | ||
21 | + void clearApkInfo(); | ||
22 | + | ||
23 | +} |
src/main/java/com/huaheng/pc/config/location/mapper/LocationMapper.java
@@ -24,4 +24,6 @@ public interface LocationMapper extends BaseMapper<Location> { | @@ -24,4 +24,6 @@ public interface LocationMapper extends BaseMapper<Location> { | ||
24 | //库位利用率 | 24 | //库位利用率 |
25 | List<LinkedHashMap<String, Object>> getLocationProp(); | 25 | List<LinkedHashMap<String, Object>> getLocationProp(); |
26 | 26 | ||
27 | + List<Location> pickLocation(); | ||
28 | + | ||
27 | } | 29 | } |
28 | \ No newline at end of file | 30 | \ No newline at end of file |
src/main/java/com/huaheng/pc/config/location/service/LocationService.java
@@ -24,4 +24,19 @@ public interface LocationService extends IService<Location>{ | @@ -24,4 +24,19 @@ public interface LocationService extends IService<Location>{ | ||
24 | 24 | ||
25 | //库位利用率 | 25 | //库位利用率 |
26 | List<LinkedHashMap<String, Object>> getLocationProp(); | 26 | List<LinkedHashMap<String, Object>> getLocationProp(); |
27 | + | ||
28 | + /** | ||
29 | + * 查询空闲可用的库位用来补充入库 | ||
30 | + * @return location | ||
31 | + */ | ||
32 | + List<Location> pickLocation(); | ||
33 | + | ||
34 | + /** | ||
35 | + * 验证库位合法性 | ||
36 | + * @param code | ||
37 | + * @return | ||
38 | + */ | ||
39 | + boolean checkLocation(String code); | ||
40 | + | ||
41 | + boolean getFreeLocation(String materialCode, String batch); | ||
27 | } | 42 | } |
src/main/java/com/huaheng/pc/config/location/service/LocationServiceImpl.java
@@ -205,4 +205,51 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i | @@ -205,4 +205,51 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i | ||
205 | return locationMapper.getLocationProp(); | 205 | return locationMapper.getLocationProp(); |
206 | } | 206 | } |
207 | 207 | ||
208 | + @Override | ||
209 | + public List<Location> pickLocation() { | ||
210 | + return locationMapper.pickLocation(); | ||
211 | + } | ||
212 | + | ||
213 | + /** | ||
214 | + * 验证库位合法性 | ||
215 | + * | ||
216 | + * @param code | ||
217 | + * @return | ||
218 | + */ | ||
219 | + @Override | ||
220 | + public boolean checkLocation(String code) { | ||
221 | + LambdaQueryWrapper<Location> queryWrapper = Wrappers.lambdaQuery(); | ||
222 | + queryWrapper.eq(Location::getWarehouseCode, ShiroUtils.getWarehouseCode()) | ||
223 | + .eq(Location::getDeleted,false) | ||
224 | + .eq(Location::getCode, code); | ||
225 | + List<Location> locations = list(queryWrapper); | ||
226 | + if (locations.size() >= 1){ | ||
227 | + Location location = locations.get(0); | ||
228 | + String containerCode =location.getContainerCode(); | ||
229 | + if (containerCode != null && containerCode.length() > 0) { | ||
230 | + throw new ServiceException("货架上已有容器"); | ||
231 | + } | ||
232 | + String status = location.getStatus(); | ||
233 | + if(!"empty".equals(status)) { | ||
234 | + throw new ServiceException("库位状态不为空"); | ||
235 | + } | ||
236 | + return true; | ||
237 | + } else { | ||
238 | + return false; | ||
239 | + } | ||
240 | + } | ||
241 | + | ||
242 | + @Override | ||
243 | + public boolean getFreeLocation(String materialCode, String batch) { | ||
244 | + LambdaQueryWrapper<Location> lambdaQueryWrapper = Wrappers.lambdaQuery(); | ||
245 | + lambdaQueryWrapper.eq(Location::getWarehouseCode, ShiroUtils.getWarehouseCode()) | ||
246 | + .eq(Location::getContainerCode, "") | ||
247 | + .eq(Location::getDeleted, false) | ||
248 | + .eq(Location::getStatus, "empty"); | ||
249 | + List<Location> locations = locationService.list(lambdaQueryWrapper); | ||
250 | + if(locations != null && locations.size() > 0) { | ||
251 | + return true; | ||
252 | + } | ||
253 | + return false; | ||
254 | + } | ||
208 | } | 255 | } |
src/main/java/com/huaheng/pc/config/material/mapper/MaterialMapper.java
@@ -3,6 +3,8 @@ package com.huaheng.pc.config.material.mapper; | @@ -3,6 +3,8 @@ package com.huaheng.pc.config.material.mapper; | ||
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
4 | import com.huaheng.pc.config.material.domain.Material; | 4 | import com.huaheng.pc.config.material.domain.Material; |
5 | 5 | ||
6 | +import java.util.List; | ||
7 | + | ||
6 | public interface MaterialMapper extends BaseMapper<Material> { | 8 | public interface MaterialMapper extends BaseMapper<Material> { |
7 | 9 | ||
8 | /** | 10 | /** |
@@ -11,4 +13,10 @@ public interface MaterialMapper extends BaseMapper<Material> { | @@ -11,4 +13,10 @@ public interface MaterialMapper extends BaseMapper<Material> { | ||
11 | * @return Material | 13 | * @return Material |
12 | */ | 14 | */ |
13 | Material findAllByCode(String code); | 15 | Material findAllByCode(String code); |
16 | + | ||
17 | + /** | ||
18 | + * 根据编码查询物料 | ||
19 | + * @return Material | ||
20 | + */ | ||
21 | + List<Material> findLatest(); | ||
14 | } | 22 | } |
15 | \ No newline at end of file | 23 | \ No newline at end of file |
src/main/java/com/huaheng/pc/config/material/service/MaterialService.java
1 | package com.huaheng.pc.config.material.service; | 1 | package com.huaheng.pc.config.material.service; |
2 | 2 | ||
3 | import com.huaheng.framework.web.domain.AjaxResult; | 3 | import com.huaheng.framework.web.domain.AjaxResult; |
4 | +import com.huaheng.mobile.shipment.Materialforecast; | ||
4 | import com.huaheng.pc.config.material.domain.Material; | 5 | import com.huaheng.pc.config.material.domain.Material; |
5 | import com.baomidou.mybatisplus.extension.service.IService; | 6 | import com.baomidou.mybatisplus.extension.service.IService; |
6 | 7 | ||
@@ -32,4 +33,13 @@ public interface MaterialService extends IService<Material>{ | @@ -32,4 +33,13 @@ public interface MaterialService extends IService<Material>{ | ||
32 | AjaxResult addSave(Material material); | 33 | AjaxResult addSave(Material material); |
33 | 34 | ||
34 | Material findAllByCode(String code); | 35 | Material findAllByCode(String code); |
36 | + | ||
37 | + List<Material> findLatest(); | ||
38 | + | ||
39 | + /** | ||
40 | + * 获得物料联想词 | ||
41 | + * @param code | ||
42 | + * @return | ||
43 | + */ | ||
44 | + List<Materialforecast> getMaterialForecast(String code); | ||
35 | } | 45 | } |
src/main/java/com/huaheng/pc/config/material/service/MaterialServiceImpl.java
@@ -7,16 +7,20 @@ import com.huaheng.common.support.Convert; | @@ -7,16 +7,20 @@ import com.huaheng.common.support.Convert; | ||
7 | import com.huaheng.common.utils.StringUtils; | 7 | import com.huaheng.common.utils.StringUtils; |
8 | import com.huaheng.common.utils.security.ShiroUtils; | 8 | import com.huaheng.common.utils.security.ShiroUtils; |
9 | import com.huaheng.framework.web.domain.AjaxResult; | 9 | import com.huaheng.framework.web.domain.AjaxResult; |
10 | +import com.huaheng.mobile.shipment.Materialforecast; | ||
10 | import com.huaheng.pc.config.materialMultiple.domain.MaterialMultiple; | 11 | import com.huaheng.pc.config.materialMultiple.domain.MaterialMultiple; |
11 | import com.huaheng.pc.config.materialType.domain.MaterialType; | 12 | import com.huaheng.pc.config.materialType.domain.MaterialType; |
12 | import com.huaheng.pc.config.materialType.service.MaterialTypeService; | 13 | import com.huaheng.pc.config.materialType.service.MaterialTypeService; |
13 | import com.huaheng.pc.config.materialUnit.domain.MaterialUnit; | 14 | import com.huaheng.pc.config.materialUnit.domain.MaterialUnit; |
14 | import com.huaheng.pc.config.materialUnit.service.MaterialUnitService; | 15 | import com.huaheng.pc.config.materialUnit.service.MaterialUnitService; |
16 | +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; | ||
17 | +import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; | ||
15 | import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; | 18 | import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; |
16 | import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService; | 19 | import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService; |
17 | import org.springframework.stereotype.Service; | 20 | import org.springframework.stereotype.Service; |
18 | import javax.annotation.Resource; | 21 | import javax.annotation.Resource; |
19 | import java.lang.ref.WeakReference; | 22 | import java.lang.ref.WeakReference; |
23 | +import java.util.ArrayList; | ||
20 | import java.util.List; | 24 | import java.util.List; |
21 | import java.util.Map; | 25 | import java.util.Map; |
22 | 26 | ||
@@ -35,6 +39,8 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i | @@ -35,6 +39,8 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i | ||
35 | private MaterialTypeService materialTypeService; | 39 | private MaterialTypeService materialTypeService; |
36 | @Resource | 40 | @Resource |
37 | private MaterialMapper materialMapper; | 41 | private MaterialMapper materialMapper; |
42 | + @Resource | ||
43 | + private InventoryDetailService inventoryDetailService; | ||
38 | 44 | ||
39 | @Override | 45 | @Override |
40 | public AjaxResult removeByIds(String ids) { | 46 | public AjaxResult removeByIds(String ids) { |
@@ -171,4 +177,49 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i | @@ -171,4 +177,49 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i | ||
171 | 177 | ||
172 | return String.format(materialType.getAutoGenSerialNumFormat(), materialType.getTrackSerialNum()); | 178 | return String.format(materialType.getAutoGenSerialNumFormat(), materialType.getTrackSerialNum()); |
173 | } | 179 | } |
180 | + | ||
181 | + @Override | ||
182 | + public List<Material> findLatest() { | ||
183 | + return materialMapper.findLatest(); | ||
184 | + } | ||
185 | + | ||
186 | + /** | ||
187 | + * 获得物料联想词 | ||
188 | + * | ||
189 | + * @param code | ||
190 | + * @return | ||
191 | + */ | ||
192 | + @Override | ||
193 | + public List<Materialforecast> getMaterialForecast(String code) { | ||
194 | + List<Materialforecast> forecast = new ArrayList<>(); | ||
195 | + LambdaQueryWrapper<InventoryDetail> detailLambdaQueryWrapper = Wrappers.lambdaQuery(); | ||
196 | + detailLambdaQueryWrapper.eq(InventoryDetail::getMaterialCode, code) | ||
197 | + .eq(InventoryDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()) | ||
198 | + .in(InventoryDetail::getCompanyCode,ShiroUtils.getCompanyCodeList()); | ||
199 | + List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(detailLambdaQueryWrapper); | ||
200 | + if (!inventoryDetailList.isEmpty()) { | ||
201 | + for (InventoryDetail inventoryDetail : inventoryDetailList) { | ||
202 | + Materialforecast materialforecast = new Materialforecast(); | ||
203 | + materialforecast.setMaterialCode(inventoryDetail.getMaterialCode()); | ||
204 | + materialforecast.setType(0); | ||
205 | + forecast.add(materialforecast); | ||
206 | + } | ||
207 | + } else { | ||
208 | + detailLambdaQueryWrapper = Wrappers.lambdaQuery(); | ||
209 | + detailLambdaQueryWrapper.like(InventoryDetail::getMaterialName, code) | ||
210 | + .eq(InventoryDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()) | ||
211 | + .in(InventoryDetail::getCompanyCode,ShiroUtils.getCompanyCodeList()); | ||
212 | + List<InventoryDetail> inventoryDetailList1 = inventoryDetailService.list(detailLambdaQueryWrapper); | ||
213 | + if (!inventoryDetailList1.isEmpty()) { | ||
214 | + for (InventoryDetail inventoryDetail : inventoryDetailList) { | ||
215 | + Materialforecast materialforecast = new Materialforecast(); | ||
216 | + materialforecast.setMaterialCode(inventoryDetail.getMaterialCode()); | ||
217 | + materialforecast.setType(0); | ||
218 | + forecast.add(materialforecast); | ||
219 | + } | ||
220 | + } | ||
221 | + } | ||
222 | + return null; | ||
223 | + } | ||
224 | + | ||
174 | } | 225 | } |
src/main/java/com/huaheng/pc/config/points/domain/Points.java
@@ -5,8 +5,9 @@ import com.baomidou.mybatisplus.annotation.TableField; | @@ -5,8 +5,9 @@ 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 com.huaheng.framework.web.domain.BaseEntity; | 7 | import com.huaheng.framework.web.domain.BaseEntity; |
8 | + | ||
8 | import io.swagger.annotations.ApiModel; | 9 | import io.swagger.annotations.ApiModel; |
9 | -import lombok.Data; | 10 | + |
10 | 11 | ||
11 | /** | 12 | /** |
12 | * @author ricard | 13 | * @author ricard |
@@ -15,7 +16,6 @@ import lombok.Data; | @@ -15,7 +16,6 @@ import lombok.Data; | ||
15 | */ | 16 | */ |
16 | 17 | ||
17 | @ApiModel(value="com.huaheng.pc.config.points.domain.Points") | 18 | @ApiModel(value="com.huaheng.pc.config.points.domain.Points") |
18 | -@Data | ||
19 | @TableName(value = "points") | 19 | @TableName(value = "points") |
20 | public class Points extends BaseEntity { | 20 | public class Points extends BaseEntity { |
21 | //id | 21 | //id |
src/main/java/com/huaheng/pc/inventory/cycleCountHeader/controller/CycleCountHeaderController.java
@@ -115,7 +115,7 @@ public class CycleCountHeaderController extends BaseController { | @@ -115,7 +115,7 @@ public class CycleCountHeaderController extends BaseController { | ||
115 | { | 115 | { |
116 | 116 | ||
117 | cycleCountHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); | 117 | cycleCountHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); |
118 | - //cycleCountHeader.setCompanyCode(cycleCountHeader.getCompanyCode()); | 118 | + cycleCountHeader.setCompanyCode(cycleCountHeader.getCompanyCode()); |
119 | //cycleCountHeader.setRound(cycleCountHeader.getRound());//盘点轮次 | 119 | //cycleCountHeader.setRound(cycleCountHeader.getRound());//盘点轮次 |
120 | cycleCountHeader.setCreated(new Date()); | 120 | cycleCountHeader.setCreated(new Date()); |
121 | cycleCountHeader.setCreatedBy(ShiroUtils.getLoginName()); | 121 | cycleCountHeader.setCreatedBy(ShiroUtils.getLoginName()); |
src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderService.java
@@ -28,6 +28,21 @@ public interface InventoryHeaderService extends IService<InventoryHeader> { | @@ -28,6 +28,21 @@ public interface InventoryHeaderService extends IService<InventoryHeader> { | ||
28 | 28 | ||
29 | AjaxResult createEmptyCheckOut(String containerCode, String location); | 29 | AjaxResult createEmptyCheckOut(String containerCode, String location); |
30 | 30 | ||
31 | + /** | ||
32 | + * 移动端获取库存详情 | ||
33 | + * @param code 物料编码 | ||
34 | + * @param companyCode 货主编码 | ||
35 | + * @return | ||
36 | + */ | ||
37 | + AjaxResult getInventory(String code, String companyCode); | ||
38 | + | ||
39 | + /** | ||
40 | + * 移动端获得库位联想词 | ||
41 | + * @param code | ||
42 | + * @param type | ||
43 | + * @return | ||
44 | + */ | ||
45 | + AjaxResult getLocationForecast(String code, int type); | ||
31 | 46 | ||
32 | } | 47 | } |
33 | 48 |
src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.java
@@ -7,11 +7,16 @@ import com.huaheng.common.exception.service.ServiceException; | @@ -7,11 +7,16 @@ import com.huaheng.common.exception.service.ServiceException; | ||
7 | import com.huaheng.common.utils.StringUtils; | 7 | import com.huaheng.common.utils.StringUtils; |
8 | import com.huaheng.common.utils.security.ShiroUtils; | 8 | import com.huaheng.common.utils.security.ShiroUtils; |
9 | import com.huaheng.framework.web.domain.AjaxResult; | 9 | import com.huaheng.framework.web.domain.AjaxResult; |
10 | +import com.huaheng.mobile.invenory.MobileInventory; | ||
10 | import com.huaheng.pc.config.container.domain.Container; | 11 | import com.huaheng.pc.config.container.domain.Container; |
11 | import com.huaheng.pc.config.container.service.ContainerService; | 12 | import com.huaheng.pc.config.container.service.ContainerService; |
12 | import com.huaheng.pc.config.location.domain.Location; | 13 | import com.huaheng.pc.config.location.domain.Location; |
13 | import com.huaheng.pc.config.location.service.LocationService; | 14 | import com.huaheng.pc.config.location.service.LocationService; |
15 | +import com.huaheng.pc.config.material.domain.Material; | ||
16 | +import com.huaheng.pc.config.material.service.MaterialService; | ||
14 | import com.huaheng.pc.config.warehouse.domain.Warehouse; | 17 | import com.huaheng.pc.config.warehouse.domain.Warehouse; |
18 | +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; | ||
19 | +import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; | ||
15 | import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader; | 20 | import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader; |
16 | import com.huaheng.pc.task.taskDetail.domain.TaskDetail; | 21 | import com.huaheng.pc.task.taskDetail.domain.TaskDetail; |
17 | import com.huaheng.pc.task.taskDetail.service.TaskDetailService; | 22 | import com.huaheng.pc.task.taskDetail.service.TaskDetailService; |
@@ -25,7 +30,9 @@ import com.huaheng.pc.inventory.inventoryHeader.mapper.InventoryHeaderMapper; | @@ -25,7 +30,9 @@ import com.huaheng.pc.inventory.inventoryHeader.mapper.InventoryHeaderMapper; | ||
25 | import org.springframework.transaction.annotation.Transactional; | 30 | import org.springframework.transaction.annotation.Transactional; |
26 | 31 | ||
27 | import javax.annotation.Resource; | 32 | import javax.annotation.Resource; |
33 | +import java.util.ArrayList; | ||
28 | import java.util.Date; | 34 | import java.util.Date; |
35 | +import java.util.List; | ||
29 | 36 | ||
30 | @Service | 37 | @Service |
31 | public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMapper, InventoryHeader> implements InventoryHeaderService { | 38 | public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMapper, InventoryHeader> implements InventoryHeaderService { |
@@ -41,8 +48,10 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe | @@ -41,8 +48,10 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe | ||
41 | private ContainerService containerService; | 48 | private ContainerService containerService; |
42 | @Resource | 49 | @Resource |
43 | private LocationService locationService; | 50 | private LocationService locationService; |
44 | - | ||
45 | - | 51 | + @Resource |
52 | + private MaterialService materialService; | ||
53 | + @Resource | ||
54 | + private InventoryDetailService inventoryDetailService; | ||
46 | 55 | ||
47 | /** | 56 | /** |
48 | * 移库 | 57 | * 移库 |
@@ -311,7 +320,210 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe | @@ -311,7 +320,210 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe | ||
311 | } | 320 | } |
312 | 321 | ||
313 | 322 | ||
323 | + /** | ||
324 | + * 移动端获取库存详情 | ||
325 | + * | ||
326 | + * @param code 物料编码 | ||
327 | + * @param companyCode 货主编码 | ||
328 | + * @return | ||
329 | + */ | ||
330 | + @Override | ||
331 | + public AjaxResult getInventory(String code, String companyCode) { | ||
332 | + if (StringUtils.isEmpty(code)) { | ||
333 | + return AjaxResult.error("编码为空"); | ||
334 | + } | ||
335 | + if (StringUtils.isEmpty(companyCode)) { | ||
336 | + return AjaxResult.error("公司编码为空"); | ||
337 | + } | ||
338 | + List<InventoryDetail> inventories = null; | ||
339 | + List<MobileInventory> mobileInventories = new ArrayList<>(); | ||
340 | + int resultType = 0; | ||
341 | + inventories = selectListEntityByMaterialCode(code); | ||
342 | + if(inventories == null || inventories.size() == 0) { | ||
343 | + inventories = selectListEntityByMaterialName(code); | ||
344 | + } | ||
345 | + if(inventories == null || inventories.size() == 0) { | ||
346 | + inventories = selectListEntityByLocationCode(code); | ||
347 | + resultType = 1; | ||
348 | + } | ||
349 | + if(inventories == null || inventories.size() == 0) { | ||
350 | + Location location = new Location(); | ||
351 | + location.setContainerCode(code); | ||
352 | + location.setWarehouseCode(ShiroUtils.getWarehouseCode()); | ||
353 | + location.setDeleted(false); | ||
354 | + LambdaQueryWrapper lamdba6 = Wrappers.lambdaQuery(location); | ||
355 | + Location location1 = locationService.getOne(lamdba6); | ||
356 | + if(location1 != null) { | ||
357 | + inventories = selectListEntityByLocationCode(location1.getCode()); | ||
358 | + resultType = 1; | ||
359 | + } | ||
360 | + } | ||
361 | + if(inventories != null && inventories.size() > 0) { | ||
362 | + for(InventoryDetail inventory : inventories) { | ||
363 | + MobileInventory mobileInventory = new MobileInventory(); | ||
364 | + mobileInventory.setId(inventory.getId()); | ||
365 | + mobileInventory.setLocationCode(inventory.getLocationCode()); | ||
366 | + mobileInventory.setMaterialCode(inventory.getMaterialCode()); | ||
367 | + mobileInventory.setContainerCode(inventory.getContainerCode()); | ||
368 | + Material materialCondition = new Material(); | ||
369 | + materialCondition.setWarehouseCode(ShiroUtils.getWarehouseCode()); | ||
370 | + materialCondition.setDeleted(false); | ||
371 | + materialCondition.setCode(inventory.getMaterialCode()); | ||
372 | +// materialCondition.setCompanyCode(companyCode); | ||
373 | + LambdaQueryWrapper lamdba6 = Wrappers.lambdaQuery(materialCondition); | ||
374 | + Material material = materialService.getOne(lamdba6); | ||
375 | + if(material == null) { | ||
376 | + return AjaxResult.error("没有相对应库存"); | ||
377 | + } | ||
378 | + mobileInventory.setMaterialName(material.getName()); | ||
379 | + mobileInventory.setQty(inventory.getQty()); | ||
380 | + mobileInventory.setResultType(resultType); | ||
381 | + mobileInventory.setTaskQty(inventory.getTaskQty()); | ||
382 | + mobileInventory.setSpecification(material.getSpec()); | ||
383 | + mobileInventories.add(mobileInventory); | ||
384 | + } | ||
385 | + return AjaxResult.success(mobileInventories); | ||
386 | + } | ||
387 | + Location location = new Location(); | ||
388 | + location.setCode(code); | ||
389 | + location.setWarehouseCode(ShiroUtils.getWarehouseCode()); | ||
390 | + location.setStatus("empty"); | ||
391 | + location.setDeleted(false); | ||
392 | + LambdaQueryWrapper lamdba62 = Wrappers.lambdaQuery(location); | ||
393 | + Location location1 = locationService.getOne(lamdba62); | ||
394 | + if(location1 != null) { | ||
395 | + resultType = 2; | ||
396 | + MobileInventory mobileInventory = new MobileInventory(); | ||
397 | + mobileInventory.setResultType(resultType); | ||
398 | + mobileInventory.setContainerCode(location1.getContainerCode()); | ||
399 | + mobileInventory.setLocationCode(location1.getCode()); | ||
400 | + mobileInventory.setContainerCode(location1.getContainerCode()); | ||
401 | + mobileInventories.add(mobileInventory); | ||
402 | + return AjaxResult.success(mobileInventories); | ||
403 | + } | ||
404 | + if(inventories == null || inventories.size() == 0) { | ||
405 | + Location condition = new Location(); | ||
406 | + condition.setContainerCode(code); | ||
407 | + condition.setWarehouseCode(ShiroUtils.getWarehouseCode()); | ||
408 | + condition.setDeleted(false); | ||
409 | + LambdaQueryWrapper lamdba63 = Wrappers.lambdaQuery(condition); | ||
410 | + Location location2 = locationService.getOne(lamdba63); | ||
411 | + if(location2 == null) { | ||
412 | + condition.setCode(code); | ||
413 | + condition.setWarehouseCode(ShiroUtils.getWarehouseCode()); | ||
414 | + condition.setDeleted(false); | ||
415 | + } | ||
416 | + if(location2 != null) { | ||
417 | + Container container = new Container(); | ||
418 | + container.setCode(location2.getContainerCode()); | ||
419 | + container.setStatus("empty"); | ||
420 | + LambdaQueryWrapper lamdba6 = Wrappers.lambdaQuery(container); | ||
421 | + container = containerService.getOne(lamdba6); | ||
422 | + if(container != null) { | ||
423 | + resultType = 2; | ||
424 | + MobileInventory mobileInventory = new MobileInventory(); | ||
425 | + mobileInventory.setResultType(resultType); | ||
426 | + mobileInventory.setContainerCode(location2.getContainerCode()); | ||
427 | + mobileInventory.setLocationCode(location2.getCode()); | ||
428 | + mobileInventory.setContainerCode(location2.getContainerCode()); | ||
429 | + mobileInventories.add(mobileInventory); | ||
430 | + return AjaxResult.success(mobileInventories); | ||
431 | + } | ||
432 | + } | ||
433 | + } | ||
434 | + return AjaxResult.error("没有相对应库存"); | ||
435 | + } | ||
436 | + | ||
437 | + public List<InventoryDetail> selectListEntityByMaterialName(String materialName) { | ||
438 | + Material material = new Material(); | ||
439 | + material.setWarehouseCode(ShiroUtils.getWarehouseCode()); | ||
440 | + material.setEnable(true); | ||
441 | + material.setDeleted(false); | ||
442 | + if(materialName.contains(" ")) { | ||
443 | + String materialinfos[] = materialName.split(" "); | ||
444 | + materialName = materialinfos[0]; | ||
445 | + material.setSpec(materialinfos[1]); | ||
446 | + } | ||
447 | + material.setName(materialName); | ||
448 | + LambdaQueryWrapper lamdba62 = Wrappers.lambdaQuery(material); | ||
449 | + Material result= materialService.getOne(lamdba62); | ||
450 | + if(result == null) { | ||
451 | + return null; | ||
452 | + } | ||
453 | + InventoryDetail condition = new InventoryDetail(); | ||
454 | + condition.setMaterialCode(result.getCode()); | ||
455 | + condition.setWarehouseCode(ShiroUtils.getWarehouseCode()); | ||
456 | + LambdaQueryWrapper lamdba6 = Wrappers.lambdaQuery(condition); | ||
457 | + List<InventoryDetail> inventories = inventoryDetailService.list(lamdba6); | ||
458 | + return inventories; | ||
459 | + } | ||
460 | + | ||
461 | + public List<InventoryDetail> selectListEntityByMaterialCode(String materialCode) { | ||
462 | + InventoryDetail condition = new InventoryDetail(); | ||
463 | + condition.setMaterialCode(materialCode); | ||
464 | + condition.setWarehouseCode(ShiroUtils.getWarehouseCode()); | ||
465 | + LambdaQueryWrapper lamdba6 = Wrappers.lambdaQuery(condition); | ||
466 | + List<InventoryDetail> inventories = inventoryDetailService.list(lamdba6); | ||
467 | + return inventories; | ||
468 | + } | ||
314 | 469 | ||
470 | + public List<InventoryDetail> selectListEntityByLocationCode(String locationCode) { | ||
471 | + InventoryDetail condition = new InventoryDetail(); | ||
472 | + condition.setLocationCode(locationCode); | ||
473 | + condition.setWarehouseCode(ShiroUtils.getWarehouseCode()); | ||
474 | + LambdaQueryWrapper lamdba6 = Wrappers.lambdaQuery(condition); | ||
475 | + List<InventoryDetail> inventories = inventoryDetailService.list(lamdba6); | ||
476 | + return inventories; | ||
477 | + } | ||
478 | + | ||
479 | + /** | ||
480 | + * 移动端获得库位联想词 | ||
481 | + * | ||
482 | + * @param code | ||
483 | + * @param type | ||
484 | + * @return | ||
485 | + */ | ||
486 | + @Override | ||
487 | + public AjaxResult getLocationForecast(String code, int type) { | ||
488 | + List<InventoryDetail> inventoryDetailList = new ArrayList<>(); | ||
489 | + if (type == 0){ | ||
490 | + LambdaQueryWrapper<InventoryDetail> detailLambdaQueryWrapper = Wrappers.lambdaQuery(); | ||
491 | + detailLambdaQueryWrapper.eq(InventoryDetail::getLocationCode, code) | ||
492 | + .eq(InventoryDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()); | ||
493 | + inventoryDetailList = inventoryDetailService.list(detailLambdaQueryWrapper); | ||
494 | + if (inventoryDetailList.isEmpty()){ | ||
495 | + List<String> results = new ArrayList<>(); | ||
496 | + for (InventoryDetail inventoryDetail : inventoryDetailList) { | ||
497 | + String locationCode = inventoryDetail.getLocationCode(); | ||
498 | + LambdaQueryWrapper<Location> locationLambdaQueryWrapper = Wrappers.lambdaQuery(); | ||
499 | + locationLambdaQueryWrapper.eq(Location::getStatus, "empaty") | ||
500 | + .eq(Location::getDeleted, false) | ||
501 | + .eq(Location::getWarehouseCode, ShiroUtils.getWarehouseCode()) | ||
502 | + .eq(Location::getCode, locationCode); | ||
503 | + Location location = locationService.getOne(locationLambdaQueryWrapper); | ||
504 | + if (location == null){ | ||
505 | + results.add(inventoryDetail.getLocationCode()); | ||
506 | + } | ||
507 | + } | ||
508 | + return AjaxResult.success(results); | ||
509 | + } | ||
510 | + } else if (type == 1) { | ||
511 | + LambdaQueryWrapper<Location> locationLambdaQueryWrapper = Wrappers.lambdaQuery(); | ||
512 | + locationLambdaQueryWrapper.eq(Location::getCode, code) | ||
513 | + .eq(Location::getWarehouseCode, ShiroUtils.getWarehouseCode()) | ||
514 | + .eq(Location::getDeleted, false) | ||
515 | + .eq(Location::getStatus, "empaty"); | ||
516 | + List<Location> locations = locationService.list(locationLambdaQueryWrapper); | ||
517 | + if (locations.isEmpty()){ | ||
518 | + List<String> results = new ArrayList<>(); | ||
519 | + for (Location location : locations) { | ||
520 | + results.add(location.getCode()); | ||
521 | + } | ||
522 | + return AjaxResult.success(results); | ||
523 | + } | ||
524 | + } | ||
525 | + return AjaxResult.success(inventoryDetailList); | ||
526 | + } | ||
315 | 527 | ||
316 | 528 | ||
317 | } | 529 | } |