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 | 2 | <project version="4"> |
3 | 3 | <component name="Encoding" native2AsciiForPropertiesFiles="true" defaultCharsetForPropertiesFiles="UTF-8"> |
4 | 4 | <file url="file://$PROJECT_DIR$" charset="UTF-8" /> |
5 | + <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" /> | |
5 | 6 | <file url="PROJECT" charset="UTF-8" /> |
6 | 7 | </component> |
7 | 8 | </project> |
8 | 9 | \ No newline at end of file |
... | ... |
.idea/workspace.xml
... | ... | @@ -5,11 +5,61 @@ |
5 | 5 | </component> |
6 | 6 | <component name="ChangeListManager"> |
7 | 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 | 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 | 59 | </list> |
11 | 60 | <ignored path="$PROJECT_DIR$/target/" /> |
12 | 61 | <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> |
62 | + <option name="TRACKING_ENABLED" value="true" /> | |
13 | 63 | <option name="SHOW_DIALOG" value="false" /> |
14 | 64 | <option name="HIGHLIGHT_CONFLICTS" value="true" /> |
15 | 65 | <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> |
... | ... | @@ -50,33 +100,11 @@ |
50 | 100 | </component> |
51 | 101 | <component name="FileEditorManager"> |
52 | 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 | 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 | 108 | </state> |
81 | 109 | </provider> |
82 | 110 | </entry> |
... | ... | @@ -96,6 +124,18 @@ |
96 | 124 | <component name="FindBugs-IDEA-Workspace"> |
97 | 125 | <toolWindowEditorPreview>false</toolWindowEditorPreview> |
98 | 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 | 139 | <component name="Git.Settings"> |
100 | 140 | <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> |
101 | 141 | <option name="RECENT_BRANCH_BY_REPOSITORY"> |
... | ... | @@ -107,30 +147,73 @@ |
107 | 147 | <component name="IdeDocumentHistory"> |
108 | 148 | <option name="CHANGED_PATHS"> |
109 | 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 | 150 | <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/controller/MaterialController.java" /> |
130 | 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 | 201 | </list> |
132 | 202 | </option> |
133 | 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 | 217 | <component name="MavenProjectNavigator"> |
135 | 218 | <treeState> |
136 | 219 | <expand> |
... | ... | @@ -142,10 +225,14 @@ |
142 | 225 | <select /> |
143 | 226 | </treeState> |
144 | 227 | </component> |
228 | + <component name="NodePackageJsonFileManager"> | |
229 | + <packageJsonPaths /> | |
230 | + </component> | |
145 | 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 | 236 | </component> |
150 | 237 | <component name="ProjectId" id="1QOzUtfkdeRmYuw3MIDHXXMLsFH" /> |
151 | 238 | <component name="ProjectLevelVcsManager"> |
... | ... | @@ -156,8 +243,7 @@ |
156 | 243 | <foldersAlwaysOnTop value="true" /> |
157 | 244 | </navigator> |
158 | 245 | <panes> |
159 | - <pane id="Scope" /> | |
160 | - <pane id="PackagesPane" /> | |
246 | + <pane id="AndroidView" /> | |
161 | 247 | <pane id="ProjectPane"> |
162 | 248 | <subPane> |
163 | 249 | <expand> |
... | ... | @@ -208,53 +294,7 @@ |
208 | 294 | <item name="java" type="462c0819:PsiDirectoryNode" /> |
209 | 295 | <item name="com" type="462c0819:PsiDirectoryNode" /> |
210 | 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 | 298 | </path> |
259 | 299 | <path> |
260 | 300 | <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> |
... | ... | @@ -264,92 +304,8 @@ |
264 | 304 | <item name="java" type="462c0819:PsiDirectoryNode" /> |
265 | 305 | <item name="com" type="462c0819:PsiDirectoryNode" /> |
266 | 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 | 309 | </path> |
354 | 310 | <path> |
355 | 311 | <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> |
... | ... | @@ -357,8 +313,6 @@ |
357 | 313 | <item name="src" type="462c0819:PsiDirectoryNode" /> |
358 | 314 | <item name="main" type="462c0819:PsiDirectoryNode" /> |
359 | 315 | <item name="resources" type="462c0819:PsiDirectoryNode" /> |
360 | - <item name="templates" type="462c0819:PsiDirectoryNode" /> | |
361 | - <item name="inventory" type="462c0819:PsiDirectoryNode" /> | |
362 | 316 | </path> |
363 | 317 | <path> |
364 | 318 | <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> |
... | ... | @@ -366,14 +320,14 @@ |
366 | 320 | <item name="src" type="462c0819:PsiDirectoryNode" /> |
367 | 321 | <item name="main" type="462c0819:PsiDirectoryNode" /> |
368 | 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 | 324 | </path> |
373 | 325 | </expand> |
374 | 326 | <select /> |
375 | 327 | </subPane> |
376 | 328 | </pane> |
329 | + <pane id="PackagesPane" /> | |
330 | + <pane id="Scope" /> | |
377 | 331 | </panes> |
378 | 332 | </component> |
379 | 333 | <component name="PropertiesComponent"> |
... | ... | @@ -383,11 +337,12 @@ |
383 | 337 | <property name="RequestMappingsPanelOrder1" value="1" /> |
384 | 338 | <property name="RequestMappingsPanelWidth0" value="75" /> |
385 | 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 | 341 | <property name="WebServerToolWindowFactoryState" value="false" /> |
387 | 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 | 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 | 346 | <property name="node.js.detected.package.eslint" value="true" /> |
392 | 347 | <property name="node.js.detected.package.tslint" value="true" /> |
393 | 348 | <property name="node.js.path.for.package.eslint" value="project" /> |
... | ... | @@ -402,17 +357,22 @@ |
402 | 357 | <property name="settings.editor.selected.configurable" value="preferences.pluginManager" /> |
403 | 358 | </component> |
404 | 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 | 366 | </key> |
408 | 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 | 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 | 376 | </key> |
417 | 377 | </component> |
418 | 378 | <component name="RunAnythingCache"> |
... | ... | @@ -438,7 +398,7 @@ |
438 | 398 | </option> |
439 | 399 | <option name="contentProportion" value="0.012987013" /> |
440 | 400 | </component> |
441 | - <component name="RunManager" selected="Spring Boot.HuaHengApplication (1)"> | |
401 | + <component name="RunManager" selected="Spring Boot.HuaHengApplication"> | |
442 | 402 | <configuration name="EncryptPassword" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true"> |
443 | 403 | <option name="MAIN_CLASS_NAME" value="com.huaheng.test.EncryptPassword" /> |
444 | 404 | <module name="huaheng" /> |
... | ... | @@ -448,9 +408,6 @@ |
448 | 408 | <option name="ENABLED" value="true" /> |
449 | 409 | </pattern> |
450 | 410 | </extension> |
451 | - <method v="2"> | |
452 | - <option name="Make" enabled="true" /> | |
453 | - </method> | |
454 | 411 | </configuration> |
455 | 412 | <configuration name="MqTest.send" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true"> |
456 | 413 | <module name="huaheng" /> |
... | ... | @@ -460,13 +417,20 @@ |
460 | 417 | <option name="ENABLED" value="true" /> |
461 | 418 | </pattern> |
462 | 419 | </extension> |
420 | + <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> | |
421 | + <option name="ALTERNATIVE_JRE_PATH" /> | |
463 | 422 | <option name="PACKAGE_NAME" value="com.huaheng.test" /> |
464 | 423 | <option name="MAIN_CLASS_NAME" value="com.huaheng.test.MqTest" /> |
465 | 424 | <option name="METHOD_NAME" value="send" /> |
466 | 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 | 434 | </configuration> |
471 | 435 | <configuration name="ServiceTest.sendSimpleMail" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true"> |
472 | 436 | <module name="huaheng" /> |
... | ... | @@ -476,13 +440,20 @@ |
476 | 440 | <option name="ENABLED" value="true" /> |
477 | 441 | </pattern> |
478 | 442 | </extension> |
443 | + <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> | |
444 | + <option name="ALTERNATIVE_JRE_PATH" /> | |
479 | 445 | <option name="PACKAGE_NAME" value="com.huaheng.test" /> |
480 | 446 | <option name="MAIN_CLASS_NAME" value="com.huaheng.test.ServiceTest" /> |
481 | 447 | <option name="METHOD_NAME" value="sendSimpleMail" /> |
482 | 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 | 457 | </configuration> |
487 | 458 | <configuration name="HuaHengApplication (1)" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true"> |
488 | 459 | <module name="wms2" /> |
... | ... | @@ -493,9 +464,6 @@ |
493 | 464 | </pattern> |
494 | 465 | </extension> |
495 | 466 | <option name="SPRING_BOOT_MAIN_CLASS" value="com.huaheng.HuaHengApplication" /> |
496 | - <method v="2"> | |
497 | - <option name="Make" enabled="true" /> | |
498 | - </method> | |
499 | 467 | </configuration> |
500 | 468 | <configuration name="HuaHengApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true"> |
501 | 469 | <module name="huaheng" /> |
... | ... | @@ -509,9 +477,6 @@ |
509 | 477 | <option name="ALTERNATIVE_JRE_PATH" /> |
510 | 478 | <option name="UPDATE_ACTION_UPDATE_POLICY" value="UpdateResources" /> |
511 | 479 | <option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" /> |
512 | - <method v="2"> | |
513 | - <option name="Make" enabled="true" /> | |
514 | - </method> | |
515 | 480 | </configuration> |
516 | 481 | <list> |
517 | 482 | <item itemvalue="Application.EncryptPassword" /> |
... | ... | @@ -522,8 +487,8 @@ |
522 | 487 | </list> |
523 | 488 | <recent_temporary> |
524 | 489 | <list> |
525 | - <item itemvalue="Spring Boot.HuaHengApplication (1)" /> | |
526 | 490 | <item itemvalue="Spring Boot.HuaHengApplication" /> |
491 | + <item itemvalue="Spring Boot.HuaHengApplication (1)" /> | |
527 | 492 | <item itemvalue="JUnit.ServiceTest.sendSimpleMail" /> |
528 | 493 | <item itemvalue="JUnit.MqTest.send" /> |
529 | 494 | <item itemvalue="Application.EncryptPassword" /> |
... | ... | @@ -742,14 +707,17 @@ |
742 | 707 | <workItem from="1578293993555" duration="9808000" /> |
743 | 708 | <workItem from="1578358115196" duration="1507000" /> |
744 | 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 | 721 | </task> |
754 | 722 | <task id="LOCAL-00027" summary="修改入库首选项页面,规则查询使用数据字典值,表格值显示修改"> |
755 | 723 | <created>1569553028716</created> |
... | ... | @@ -1087,50 +1055,58 @@ |
1087 | 1055 | <option name="project" value="LOCAL" /> |
1088 | 1056 | <updated>1578455348001</updated> |
1089 | 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 | 1066 | <servers /> |
1092 | 1067 | </component> |
1093 | 1068 | <component name="TimeTrackingManager"> |
1094 | - <option name="totallyTimeSpent" value="158484000" /> | |
1069 | + <option name="totallyTimeSpent" value="291372000" /> | |
1095 | 1070 | </component> |
1096 | 1071 | <component name="ToolWindowManager"> |
1097 | 1072 | <frame x="-7" y="-7" width="1550" height="838" extended-state="6" /> |
1098 | - <editor active="true" /> | |
1099 | 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 | 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 | 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 | 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 | 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 | 1095 | <window_info anchor="bottom" id="Spring" order="7" /> |
1116 | 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 | 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 | 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 | 1110 | </layout> |
1135 | 1111 | </component> |
1136 | 1112 | <component name="TypeScriptGeneratedFilesManager"> |
... | ... | @@ -1154,20 +1130,9 @@ |
1154 | 1130 | </entry> |
1155 | 1131 | </map> |
1156 | 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 | 1136 | </component> |
1172 | 1137 | <component name="VcsManagerConfiguration"> |
1173 | 1138 | <MESSAGE value="修改接口实体类" /> |
... | ... | @@ -1199,92 +1164,10 @@ |
1199 | 1164 | </component> |
1200 | 1165 | <component name="XDebuggerManager"> |
1201 | 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 | 1171 | </breakpoint-manager> |
1289 | 1172 | <watches-manager> |
1290 | 1173 | <configuration name="SpringBootApplicationConfigurationType"> |
... | ... | @@ -1298,399 +1181,351 @@ |
1298 | 1181 | </SUITE> |
1299 | 1182 | </component> |
1300 | 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 | 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 | 1188 | </state> |
1306 | 1189 | </provider> |
1307 | 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 | 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 | 1195 | </state> |
1313 | 1196 | </provider> |
1314 | 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 | 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 | 1203 | </provider> |
1319 | 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 | 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 | 1210 | </provider> |
1324 | 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 | 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 | 1216 | </state> |
1330 | 1217 | </provider> |
1331 | 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 | 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 | 1223 | </state> |
1337 | 1224 | </provider> |
1338 | 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 | 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 | 1230 | </state> |
1344 | 1231 | </provider> |
1345 | 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 | 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 | 1238 | </state> |
1351 | 1239 | </provider> |
1352 | 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 | 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 | 1245 | </state> |
1361 | 1246 | </provider> |
1362 | 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 | 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 | 1252 | </state> |
1374 | 1253 | </provider> |
1375 | 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 | 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 | 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 | 1262 | </folding> |
1406 | 1263 | </state> |
1407 | 1264 | </provider> |
1408 | 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 | 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 | 1270 | </state> |
1414 | 1271 | </provider> |
1415 | 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 | 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 | 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 | 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 | 1283 | </state> |
1442 | 1284 | </provider> |
1443 | 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 | 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 | 1290 | </state> |
1449 | 1291 | </provider> |
1450 | 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 | 1294 | <provider selected="true" editor-type-id="text-editor"> |
1453 | 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 | 1297 | </state> |
1456 | 1298 | </provider> |
1457 | 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 | 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 | 1304 | </state> |
1463 | 1305 | </provider> |
1464 | 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 | 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 | 1311 | </state> |
1470 | 1312 | </provider> |
1471 | 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 | 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 | 1318 | </state> |
1477 | 1319 | </provider> |
1478 | 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 | 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 | 1325 | </state> |
1484 | 1326 | </provider> |
1485 | 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 | 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 | 1332 | </state> |
1491 | 1333 | </provider> |
1492 | 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 | 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 | 1339 | </state> |
1498 | 1340 | </provider> |
1499 | 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 | 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 | 1345 | </provider> |
1506 | 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 | 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 | 1351 | </state> |
1512 | 1352 | </provider> |
1513 | 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 | 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 | 1358 | </state> |
1519 | 1359 | </provider> |
1520 | 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 | 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 | 1366 | </provider> |
1525 | 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 | 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 | 1372 | </state> |
1531 | 1373 | </provider> |
1532 | 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 | 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 | 1379 | </state> |
1538 | 1380 | </provider> |
1539 | 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 | 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 | 1386 | </state> |
1545 | 1387 | </provider> |
1546 | 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 | 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 | 1393 | </state> |
1552 | 1394 | </provider> |
1553 | 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 | 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 | 1400 | </state> |
1559 | 1401 | </provider> |
1560 | 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 | 1404 | <provider selected="true" editor-type-id="text-editor"> |
1563 | 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 | 1407 | </state> |
1566 | 1408 | </provider> |
1567 | 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 | 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 | 1414 | </state> |
1573 | 1415 | </provider> |
1574 | 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 | 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 | 1421 | </state> |
1580 | 1422 | </provider> |
1581 | 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 | 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 | 1428 | </state> |
1587 | 1429 | </provider> |
1588 | 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 | 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 | 1435 | </state> |
1594 | 1436 | </provider> |
1595 | 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 | 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 | 1442 | </state> |
1601 | 1443 | </provider> |
1602 | 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 | 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 | 1449 | </state> |
1608 | 1450 | </provider> |
1609 | 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 | 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 | 1456 | </state> |
1615 | 1457 | </provider> |
1616 | 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 | 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 | 1463 | </state> |
1628 | 1464 | </provider> |
1629 | 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 | 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 | 1470 | </state> |
1635 | 1471 | </provider> |
1636 | 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 | 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 | 1477 | </state> |
1642 | 1478 | </provider> |
1643 | 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 | 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 | 1484 | </state> |
1649 | 1485 | </provider> |
1650 | 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 | 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 | 1491 | </state> |
1656 | 1492 | </provider> |
1657 | 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 | 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 | 1498 | </state> |
1663 | 1499 | </provider> |
1664 | 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 | 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 | 1505 | </state> |
1670 | 1506 | </provider> |
1671 | 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 | 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 | 1512 | </state> |
1677 | 1513 | </provider> |
1678 | 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 | 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 | 1522 | </state> |
1684 | 1523 | </provider> |
1685 | 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 | 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 | 1529 | </state> |
1695 | 1530 | </provider> |
1696 | 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 | 3 | |
4 | 4 | import com.huaheng.api.general.domain.ReceiptDomain; |
5 | 5 | import com.huaheng.api.general.service.ReceiptApiService; |
6 | +import com.huaheng.common.utils.StringUtils; | |
6 | 7 | import com.huaheng.framework.aspectj.lang.annotation.Log; |
7 | 8 | import com.huaheng.framework.aspectj.lang.constant.BusinessType; |
8 | 9 | import com.huaheng.framework.web.domain.AjaxResult; |
9 | 10 | import io.swagger.annotations.Api; |
10 | 11 | import io.swagger.annotations.ApiOperation; |
12 | +import io.swagger.annotations.ApiParam; | |
13 | +import org.apache.shiro.authz.annotation.RequiresPermissions; | |
11 | 14 | import org.springframework.web.bind.annotation.*; |
12 | 15 | |
13 | 16 | import javax.annotation.Resource; |
... | ... | @@ -34,4 +37,18 @@ public class ReceiptApi { |
34 | 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 | 4 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
5 | 5 | import com.huaheng.api.general.controller.ReceiptApi; |
6 | 6 | import com.huaheng.api.general.domain.ReceiptDomain; |
7 | +import com.huaheng.common.constant.QuantityConstant; | |
7 | 8 | import com.huaheng.common.exception.service.ServiceException; |
9 | +import com.huaheng.common.support.Convert; | |
8 | 10 | import com.huaheng.common.utils.StringUtils; |
11 | +import com.huaheng.common.utils.security.ShiroUtils; | |
9 | 12 | import com.huaheng.framework.web.domain.AjaxResult; |
10 | 13 | import com.huaheng.pc.config.FilterConfigDetail.domain.FilterConfigDetail; |
11 | 14 | import com.huaheng.pc.config.FilterConfigDetail.service.FilterConfigDetailService; |
... | ... | @@ -23,14 +26,21 @@ import com.huaheng.pc.config.warehouse.domain.Warehouse; |
23 | 26 | import com.huaheng.pc.config.warehouse.service.WarehouseService; |
24 | 27 | import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; |
25 | 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 | 31 | import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; |
27 | 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 | 36 | import org.springframework.stereotype.Component; |
29 | 37 | import org.springframework.transaction.annotation.Transactional; |
30 | 38 | |
31 | 39 | import javax.annotation.Resource; |
40 | +import java.lang.reflect.InvocationTargetException; | |
32 | 41 | import java.math.BigDecimal; |
33 | 42 | import java.util.ArrayList; |
43 | +import java.util.Arrays; | |
34 | 44 | import java.util.List; |
35 | 45 | |
36 | 46 | @Component |
... | ... | @@ -54,6 +64,10 @@ public class ReceiptApiService { |
54 | 64 | private FilterConfigDetailService filterConfigDetailService; |
55 | 65 | @Resource |
56 | 66 | private StatusFlowHeaderService statusFlowHeaderService; |
67 | + @Resource | |
68 | + private ReceiptHeaderHistoryService receiptHeaderHistoryService; | |
69 | + @Resource | |
70 | + private ReceiptDetailHistoryService receiptDetailHistoryService; | |
57 | 71 | /** |
58 | 72 | * 入库单下发 |
59 | 73 | * @param receipt 入库单 |
... | ... | @@ -218,4 +232,65 @@ public class ReceiptApiService { |
218 | 232 | |
219 | 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 | 263 | filterChainDefinitionMap.put("/admin/logout", "adminlogout"); |
264 | 264 | // 不需要拦截的访问 |
265 | 265 | // filterChainDefinitionMap.put("/admin/home", "anon,captchaValidate"); |
266 | + filterChainDefinitionMap.put("/mobile/download/*", "anon,captchaValidate"); | |
266 | 267 | filterChainDefinitionMap.put("/admin/login", "anon,captchaValidate"); |
267 | 268 | filterChainDefinitionMap.put("/login", "anon,captchaValidate"); |
268 | 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 | 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
src/main/java/com/huaheng/pc/config/location/service/LocationService.java
... | ... | @@ -24,4 +24,19 @@ public interface LocationService extends IService<Location>{ |
24 | 24 | |
25 | 25 | //库位利用率 |
26 | 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 | 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 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
4 | 4 | import com.huaheng.pc.config.material.domain.Material; |
5 | 5 | |
6 | +import java.util.List; | |
7 | + | |
6 | 8 | public interface MaterialMapper extends BaseMapper<Material> { |
7 | 9 | |
8 | 10 | /** |
... | ... | @@ -11,4 +13,10 @@ public interface MaterialMapper extends BaseMapper<Material> { |
11 | 13 | * @return Material |
12 | 14 | */ |
13 | 15 | Material findAllByCode(String code); |
16 | + | |
17 | + /** | |
18 | + * 根据编码查询物料 | |
19 | + * @return Material | |
20 | + */ | |
21 | + List<Material> findLatest(); | |
14 | 22 | } |
15 | 23 | \ No newline at end of file |
... | ... |
src/main/java/com/huaheng/pc/config/material/service/MaterialService.java
1 | 1 | package com.huaheng.pc.config.material.service; |
2 | 2 | |
3 | 3 | import com.huaheng.framework.web.domain.AjaxResult; |
4 | +import com.huaheng.mobile.shipment.Materialforecast; | |
4 | 5 | import com.huaheng.pc.config.material.domain.Material; |
5 | 6 | import com.baomidou.mybatisplus.extension.service.IService; |
6 | 7 | |
... | ... | @@ -32,4 +33,13 @@ public interface MaterialService extends IService<Material>{ |
32 | 33 | AjaxResult addSave(Material material); |
33 | 34 | |
34 | 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 | 7 | import com.huaheng.common.utils.StringUtils; |
8 | 8 | import com.huaheng.common.utils.security.ShiroUtils; |
9 | 9 | import com.huaheng.framework.web.domain.AjaxResult; |
10 | +import com.huaheng.mobile.shipment.Materialforecast; | |
10 | 11 | import com.huaheng.pc.config.materialMultiple.domain.MaterialMultiple; |
11 | 12 | import com.huaheng.pc.config.materialType.domain.MaterialType; |
12 | 13 | import com.huaheng.pc.config.materialType.service.MaterialTypeService; |
13 | 14 | import com.huaheng.pc.config.materialUnit.domain.MaterialUnit; |
14 | 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 | 18 | import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; |
16 | 19 | import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService; |
17 | 20 | import org.springframework.stereotype.Service; |
18 | 21 | import javax.annotation.Resource; |
19 | 22 | import java.lang.ref.WeakReference; |
23 | +import java.util.ArrayList; | |
20 | 24 | import java.util.List; |
21 | 25 | import java.util.Map; |
22 | 26 | |
... | ... | @@ -35,6 +39,8 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i |
35 | 39 | private MaterialTypeService materialTypeService; |
36 | 40 | @Resource |
37 | 41 | private MaterialMapper materialMapper; |
42 | + @Resource | |
43 | + private InventoryDetailService inventoryDetailService; | |
38 | 44 | |
39 | 45 | @Override |
40 | 46 | public AjaxResult removeByIds(String ids) { |
... | ... | @@ -171,4 +177,49 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i |
171 | 177 | |
172 | 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 | 5 | import com.baomidou.mybatisplus.annotation.TableId; |
6 | 6 | import com.baomidou.mybatisplus.annotation.TableName; |
7 | 7 | import com.huaheng.framework.web.domain.BaseEntity; |
8 | + | |
8 | 9 | import io.swagger.annotations.ApiModel; |
9 | -import lombok.Data; | |
10 | + | |
10 | 11 | |
11 | 12 | /** |
12 | 13 | * @author ricard |
... | ... | @@ -15,7 +16,6 @@ import lombok.Data; |
15 | 16 | */ |
16 | 17 | |
17 | 18 | @ApiModel(value="com.huaheng.pc.config.points.domain.Points") |
18 | -@Data | |
19 | 19 | @TableName(value = "points") |
20 | 20 | public class Points extends BaseEntity { |
21 | 21 | //id |
... | ... |
src/main/java/com/huaheng/pc/inventory/cycleCountHeader/controller/CycleCountHeaderController.java
... | ... | @@ -115,7 +115,7 @@ public class CycleCountHeaderController extends BaseController { |
115 | 115 | { |
116 | 116 | |
117 | 117 | cycleCountHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); |
118 | - //cycleCountHeader.setCompanyCode(cycleCountHeader.getCompanyCode()); | |
118 | + cycleCountHeader.setCompanyCode(cycleCountHeader.getCompanyCode()); | |
119 | 119 | //cycleCountHeader.setRound(cycleCountHeader.getRound());//盘点轮次 |
120 | 120 | cycleCountHeader.setCreated(new Date()); |
121 | 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 | 28 | |
29 | 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 | 7 | import com.huaheng.common.utils.StringUtils; |
8 | 8 | import com.huaheng.common.utils.security.ShiroUtils; |
9 | 9 | import com.huaheng.framework.web.domain.AjaxResult; |
10 | +import com.huaheng.mobile.invenory.MobileInventory; | |
10 | 11 | import com.huaheng.pc.config.container.domain.Container; |
11 | 12 | import com.huaheng.pc.config.container.service.ContainerService; |
12 | 13 | import com.huaheng.pc.config.location.domain.Location; |
13 | 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 | 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 | 20 | import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader; |
16 | 21 | import com.huaheng.pc.task.taskDetail.domain.TaskDetail; |
17 | 22 | import com.huaheng.pc.task.taskDetail.service.TaskDetailService; |
... | ... | @@ -25,7 +30,9 @@ import com.huaheng.pc.inventory.inventoryHeader.mapper.InventoryHeaderMapper; |
25 | 30 | import org.springframework.transaction.annotation.Transactional; |
26 | 31 | |
27 | 32 | import javax.annotation.Resource; |
33 | +import java.util.ArrayList; | |
28 | 34 | import java.util.Date; |
35 | +import java.util.List; | |
29 | 36 | |
30 | 37 | @Service |
31 | 38 | public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMapper, InventoryHeader> implements InventoryHeaderService { |
... | ... | @@ -41,8 +48,10 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe |
41 | 48 | private ContainerService containerService; |
42 | 49 | @Resource |
43 | 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 | 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 | } |
... | ... |