Commit 703ba4316f120eec4390f3150becbe2999e55811
Merge remote-tracking branch 'origin/develop' into develop
Showing
238 changed files
with
8158 additions
and
1556 deletions
Too many changes to show.
To preserve performance only 64 of 238 files are displayed.
.idea/workspace.xml
1 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | 2 | <project version="4"> |
3 | + <component name="AnalysisUIOptions"> | |
4 | + <option name="GROUP_BY_SEVERITY" value="true" /> | |
5 | + </component> | |
3 | 6 | <component name="ChangeListManager"> |
4 | 7 | <list default="true" id="baeae966-16bb-4f97-a411-22fe5a65cefd" name="Default Changelist" comment=""> |
5 | 8 | <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> |
6 | - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java" afterDir="false" /> | |
7 | - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkingRegister/service/CheckingRegisterService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkingRegister/service/CheckingRegisterService.java" afterDir="false" /> | |
8 | - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/statusFlow/controller/StatusFlowHeaderController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/statusFlow/controller/StatusFlowHeaderController.java" afterDir="false" /> | |
9 | - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/config/filterConfigHeader/add.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/config/filterConfigHeader/add.html" afterDir="false" /> | |
10 | - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/config/receiptType/add.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/config/receiptType/add.html" afterDir="false" /> | |
11 | - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/config/statusFlowHeader/add.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/config/statusFlowHeader/add.html" afterDir="false" /> | |
12 | - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/config/statusFlowHeader/statusFlowHeader.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/config/statusFlowHeader/statusFlowHeader.html" afterDir="false" /> | |
13 | - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiptHeader/receiptHeader.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiptHeader/receiptHeader.html" afterDir="false" /> | |
9 | + <change beforePath="$PROJECT_DIR$/src/main/resources/templates/config/container/print.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/config/container/print.html" afterDir="false" /> | |
14 | 10 | </list> |
11 | + <ignored path="$PROJECT_DIR$/target/" /> | |
15 | 12 | <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> |
16 | 13 | <option name="SHOW_DIALOG" value="false" /> |
17 | 14 | <option name="HIGHLIGHT_CONFLICTS" value="true" /> |
... | ... | @@ -29,26 +26,381 @@ |
29 | 26 | <option name="HIDDEN_KINDS"> |
30 | 27 | <set /> |
31 | 28 | </option> |
32 | - <expand /> | |
29 | + <expand> | |
30 | + <path> | |
31 | + <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" /> | |
32 | + <item name="@172.16.29.45" type="feb32156:DbDataSourceImpl" /> | |
33 | + </path> | |
34 | + <path> | |
35 | + <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" /> | |
36 | + <item name="@172.16.29.45" type="feb32156:DbDataSourceImpl" /> | |
37 | + <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" /> | |
38 | + </path> | |
39 | + <path> | |
40 | + <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" /> | |
41 | + <item name="@172.16.29.45" type="feb32156:DbDataSourceImpl" /> | |
42 | + <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" /> | |
43 | + <item name="wms_v2: schema" type="76f4a085:MysqlImplModel$Schema" /> | |
44 | + </path> | |
45 | + </expand> | |
33 | 46 | <select /> |
34 | 47 | </component> |
48 | + <component name="FavoritesManager"> | |
49 | + <favorites_list name="huaheng" /> | |
50 | + </component> | |
51 | + <component name="FileEditorManager"> | |
52 | + <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> | |
53 | + <file pinned="false" current-in-tab="false"> | |
54 | + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/config/container/container.html"> | |
55 | + <provider selected="true" editor-type-id="text-editor"> | |
56 | + <state relative-caret-position="1292"> | |
57 | + <caret line="68" column="44" selection-start-line="68" selection-start-column="35" selection-end-line="68" selection-end-column="44" /> | |
58 | + </state> | |
59 | + </provider> | |
60 | + </entry> | |
61 | + </file> | |
62 | + <file pinned="false" current-in-tab="false"> | |
63 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/controller/ContainerController.java"> | |
64 | + <provider selected="true" editor-type-id="text-editor"> | |
65 | + <state relative-caret-position="228"> | |
66 | + <caret line="41" column="29" selection-start-line="41" selection-start-column="29" selection-end-line="41" selection-end-column="38" /> | |
67 | + </state> | |
68 | + </provider> | |
69 | + </entry> | |
70 | + </file> | |
71 | + <file pinned="false" current-in-tab="true"> | |
72 | + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/config/container/print.html"> | |
73 | + <provider selected="true" editor-type-id="text-editor"> | |
74 | + <state relative-caret-position="150"> | |
75 | + <caret line="21" column="28" lean-forward="true" selection-start-line="21" selection-start-column="28" selection-end-line="21" selection-end-column="28" /> | |
76 | + <folding> | |
77 | + <element signature="n#style#0;n#div#0;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" /> | |
78 | + <element signature="n#style#0;n#span#0;n#div#0;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" /> | |
79 | + <element signature="n#style#0;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | |
80 | + <element signature="n#style#0;n#div#0;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | |
81 | + <element signature="n#style#0;n#table#0;n#div#0;n#div#0;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | |
82 | + </folding> | |
83 | + </state> | |
84 | + </provider> | |
85 | + </entry> | |
86 | + </file> | |
87 | + <file pinned="false" current-in-tab="false"> | |
88 | + <entry file="file://$USER_HOME$/Desktop/boot/boot/打印二维码 - 多个组2.html"> | |
89 | + <provider selected="true" editor-type-id="text-editor"> | |
90 | + <state relative-caret-position="241"> | |
91 | + <caret line="47" column="36" lean-forward="true" selection-start-line="47" selection-start-column="36" selection-end-line="47" selection-end-column="36" /> | |
92 | + <folding> | |
93 | + <element signature="n#style#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | |
94 | + <element signature="n#style#0;n#div#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | |
95 | + <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" /> | |
96 | + <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" /> | |
97 | + <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" /> | |
98 | + <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" /> | |
99 | + <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" /> | |
100 | + <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" /> | |
101 | + <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" /> | |
102 | + <element signature="e#2973#2979#0" expanded="true" /> | |
103 | + <element signature="e#2979#2985#0" expanded="true" /> | |
104 | + <element signature="e#2985#2991#0" expanded="true" /> | |
105 | + <element signature="e#2991#2997#0" expanded="true" /> | |
106 | + <element signature="e#2997#3003#0" expanded="true" /> | |
107 | + <element signature="e#3003#3009#0" expanded="true" /> | |
108 | + <element signature="e#3009#3015#0" expanded="true" /> | |
109 | + <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" /> | |
110 | + <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" /> | |
111 | + <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" /> | |
112 | + <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" /> | |
113 | + <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" /> | |
114 | + <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" /> | |
115 | + <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" /> | |
116 | + <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" /> | |
117 | + <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" /> | |
118 | + <element signature="e#3995#4001#0" expanded="true" /> | |
119 | + <element signature="e#4001#4007#0" expanded="true" /> | |
120 | + <element signature="e#4007#4013#0" expanded="true" /> | |
121 | + <element signature="e#4013#4019#0" expanded="true" /> | |
122 | + <element signature="e#4019#4025#0" expanded="true" /> | |
123 | + <element signature="e#4025#4031#0" expanded="true" /> | |
124 | + <element signature="e#4031#4037#0" expanded="true" /> | |
125 | + <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" /> | |
126 | + <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" /> | |
127 | + </folding> | |
128 | + </state> | |
129 | + </provider> | |
130 | + </entry> | |
131 | + </file> | |
132 | + </leaf> | |
133 | + </component> | |
35 | 134 | <component name="FileTemplateManagerImpl"> |
36 | 135 | <option name="RECENT_TEMPLATES"> |
37 | 136 | <list> |
38 | 137 | <option value="Interface" /> |
39 | - <option value="Class" /> | |
40 | 138 | <option value="Enum" /> |
41 | 139 | <option value="HTML File" /> |
140 | + <option value="Class" /> | |
42 | 141 | </list> |
43 | 142 | </option> |
44 | 143 | </component> |
144 | + <component name="FindBugs-IDEA-Workspace"> | |
145 | + <toolWindowEditorPreview>false</toolWindowEditorPreview> | |
146 | + </component> | |
45 | 147 | <component name="Git.Settings"> |
46 | 148 | <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> |
149 | + <option name="RECENT_BRANCH_BY_REPOSITORY"> | |
150 | + <map> | |
151 | + <entry key="$PROJECT_DIR$" value="rabbitmq" /> | |
152 | + </map> | |
153 | + </option> | |
154 | + </component> | |
155 | + <component name="IdeDocumentHistory"> | |
156 | + <option name="CHANGED_PATHS"> | |
157 | + <list> | |
158 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/controller/ReceiptApi.java" /> | |
159 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/service/ReceiptApiService.java" /> | |
160 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java" /> | |
161 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/service/ShipmentApiService.java" /> | |
162 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/system/user/service/UserServiceImpl.java" /> | |
163 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/system/user/service/IUserService.java" /> | |
164 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/controller/BasicDataApi.java" /> | |
165 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/domain/InventoryDomain.java" /> | |
166 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/general/service/BasicDataApiService.java" /> | |
167 | + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/controller/ContainerController.java" /> | |
168 | + <option value="$PROJECT_DIR$/src/main/resources/templates/config/container/container.html" /> | |
169 | + <option value="$USER_HOME$/Desktop/boot/boot/打印二维码 - 多个组2.html" /> | |
170 | + <option value="$PROJECT_DIR$/src/main/resources/static/css/style.css" /> | |
171 | + <option value="$PROJECT_DIR$/src/main/resources/templates/config/container/print.html" /> | |
172 | + </list> | |
173 | + </option> | |
174 | + </component> | |
175 | + <component name="MavenProjectNavigator"> | |
176 | + <treeState> | |
177 | + <expand> | |
178 | + <path> | |
179 | + <item name="" type="16c1761:MavenProjectsStructure$RootNode" /> | |
180 | + <item name="huaheng" type="9519ce18:MavenProjectsStructure$ProjectNode" /> | |
181 | + </path> | |
182 | + </expand> | |
183 | + <select /> | |
184 | + </treeState> | |
185 | + </component> | |
186 | + <component name="ProjectFrameBounds" extendedState="6"> | |
187 | + <option name="x" value="470" /> | |
188 | + <option name="width" value="980" /> | |
189 | + <option name="height" value="1030" /> | |
47 | 190 | </component> |
48 | 191 | <component name="ProjectId" id="1QOzUtfkdeRmYuw3MIDHXXMLsFH" /> |
49 | 192 | <component name="ProjectLevelVcsManager"> |
50 | 193 | <OptionsSetting value="false" id="Update" /> |
51 | 194 | </component> |
195 | + <component name="ProjectView"> | |
196 | + <navigator proportions="" version="1"> | |
197 | + <foldersAlwaysOnTop value="true" /> | |
198 | + </navigator> | |
199 | + <panes> | |
200 | + <pane id="PackagesPane" /> | |
201 | + <pane id="ProjectPane"> | |
202 | + <subPane> | |
203 | + <expand> | |
204 | + <path> | |
205 | + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | |
206 | + <item name="wms2" type="462c0819:PsiDirectoryNode" /> | |
207 | + </path> | |
208 | + <path> | |
209 | + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | |
210 | + <item name="wms2" type="462c0819:PsiDirectoryNode" /> | |
211 | + <item name="src" 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 | + </path> | |
219 | + <path> | |
220 | + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | |
221 | + <item name="wms2" type="462c0819:PsiDirectoryNode" /> | |
222 | + <item name="src" type="462c0819:PsiDirectoryNode" /> | |
223 | + <item name="main" type="462c0819:PsiDirectoryNode" /> | |
224 | + <item name="java" type="462c0819:PsiDirectoryNode" /> | |
225 | + </path> | |
226 | + <path> | |
227 | + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | |
228 | + <item name="wms2" type="462c0819:PsiDirectoryNode" /> | |
229 | + <item name="src" type="462c0819:PsiDirectoryNode" /> | |
230 | + <item name="main" type="462c0819:PsiDirectoryNode" /> | |
231 | + <item name="java" type="462c0819:PsiDirectoryNode" /> | |
232 | + <item name="com" 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 | + </path> | |
243 | + <path> | |
244 | + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | |
245 | + <item name="wms2" type="462c0819:PsiDirectoryNode" /> | |
246 | + <item name="src" type="462c0819:PsiDirectoryNode" /> | |
247 | + <item name="main" type="462c0819:PsiDirectoryNode" /> | |
248 | + <item name="java" type="462c0819:PsiDirectoryNode" /> | |
249 | + <item name="com" type="462c0819:PsiDirectoryNode" /> | |
250 | + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> | |
251 | + <item name="pc" type="462c0819:PsiDirectoryNode" /> | |
252 | + </path> | |
253 | + <path> | |
254 | + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | |
255 | + <item name="wms2" type="462c0819:PsiDirectoryNode" /> | |
256 | + <item name="src" type="462c0819:PsiDirectoryNode" /> | |
257 | + <item name="main" type="462c0819:PsiDirectoryNode" /> | |
258 | + <item name="java" type="462c0819:PsiDirectoryNode" /> | |
259 | + <item name="com" type="462c0819:PsiDirectoryNode" /> | |
260 | + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> | |
261 | + <item name="pc" type="462c0819:PsiDirectoryNode" /> | |
262 | + <item name="config" type="462c0819:PsiDirectoryNode" /> | |
263 | + </path> | |
264 | + <path> | |
265 | + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | |
266 | + <item name="wms2" type="462c0819:PsiDirectoryNode" /> | |
267 | + <item name="src" type="462c0819:PsiDirectoryNode" /> | |
268 | + <item name="main" type="462c0819:PsiDirectoryNode" /> | |
269 | + <item name="java" type="462c0819:PsiDirectoryNode" /> | |
270 | + <item name="com" type="462c0819:PsiDirectoryNode" /> | |
271 | + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> | |
272 | + <item name="pc" type="462c0819:PsiDirectoryNode" /> | |
273 | + <item name="config" type="462c0819:PsiDirectoryNode" /> | |
274 | + <item name="container" type="462c0819:PsiDirectoryNode" /> | |
275 | + </path> | |
276 | + <path> | |
277 | + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | |
278 | + <item name="wms2" type="462c0819:PsiDirectoryNode" /> | |
279 | + <item name="src" type="462c0819:PsiDirectoryNode" /> | |
280 | + <item name="main" type="462c0819:PsiDirectoryNode" /> | |
281 | + <item name="java" type="462c0819:PsiDirectoryNode" /> | |
282 | + <item name="com" type="462c0819:PsiDirectoryNode" /> | |
283 | + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> | |
284 | + <item name="pc" type="462c0819:PsiDirectoryNode" /> | |
285 | + <item name="config" type="462c0819:PsiDirectoryNode" /> | |
286 | + <item name="container" type="462c0819:PsiDirectoryNode" /> | |
287 | + <item name="controller" type="462c0819:PsiDirectoryNode" /> | |
288 | + </path> | |
289 | + <path> | |
290 | + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | |
291 | + <item name="wms2" type="462c0819:PsiDirectoryNode" /> | |
292 | + <item name="src" type="462c0819:PsiDirectoryNode" /> | |
293 | + <item name="main" type="462c0819:PsiDirectoryNode" /> | |
294 | + <item name="java" type="462c0819:PsiDirectoryNode" /> | |
295 | + <item name="com" type="462c0819:PsiDirectoryNode" /> | |
296 | + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> | |
297 | + <item name="pc" type="462c0819:PsiDirectoryNode" /> | |
298 | + <item name="inventory" type="462c0819:PsiDirectoryNode" /> | |
299 | + </path> | |
300 | + <path> | |
301 | + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | |
302 | + <item name="wms2" type="462c0819:PsiDirectoryNode" /> | |
303 | + <item name="src" type="462c0819:PsiDirectoryNode" /> | |
304 | + <item name="main" type="462c0819:PsiDirectoryNode" /> | |
305 | + <item name="java" type="462c0819:PsiDirectoryNode" /> | |
306 | + <item name="com" type="462c0819:PsiDirectoryNode" /> | |
307 | + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> | |
308 | + <item name="pc" type="462c0819:PsiDirectoryNode" /> | |
309 | + <item name="inventory" type="462c0819:PsiDirectoryNode" /> | |
310 | + <item name="inventoryTransaction" type="462c0819:PsiDirectoryNode" /> | |
311 | + </path> | |
312 | + <path> | |
313 | + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | |
314 | + <item name="wms2" type="462c0819:PsiDirectoryNode" /> | |
315 | + <item name="src" type="462c0819:PsiDirectoryNode" /> | |
316 | + <item name="main" type="462c0819:PsiDirectoryNode" /> | |
317 | + <item name="java" type="462c0819:PsiDirectoryNode" /> | |
318 | + <item name="com" type="462c0819:PsiDirectoryNode" /> | |
319 | + <item name="huaheng" type="462c0819:PsiDirectoryNode" /> | |
320 | + <item name="pc" type="462c0819:PsiDirectoryNode" /> | |
321 | + <item name="inventory" type="462c0819:PsiDirectoryNode" /> | |
322 | + <item name="inventoryTransaction" type="462c0819:PsiDirectoryNode" /> | |
323 | + <item name="controller" type="462c0819:PsiDirectoryNode" /> | |
324 | + </path> | |
325 | + <path> | |
326 | + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | |
327 | + <item name="wms2" type="462c0819:PsiDirectoryNode" /> | |
328 | + <item name="src" type="462c0819:PsiDirectoryNode" /> | |
329 | + <item name="main" type="462c0819:PsiDirectoryNode" /> | |
330 | + <item name="resources" type="462c0819:PsiDirectoryNode" /> | |
331 | + </path> | |
332 | + <path> | |
333 | + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | |
334 | + <item name="wms2" type="462c0819:PsiDirectoryNode" /> | |
335 | + <item name="src" type="462c0819:PsiDirectoryNode" /> | |
336 | + <item name="main" type="462c0819:PsiDirectoryNode" /> | |
337 | + <item name="resources" type="462c0819:PsiDirectoryNode" /> | |
338 | + <item name="templates" type="462c0819:PsiDirectoryNode" /> | |
339 | + </path> | |
340 | + <path> | |
341 | + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | |
342 | + <item name="wms2" type="462c0819:PsiDirectoryNode" /> | |
343 | + <item name="src" type="462c0819:PsiDirectoryNode" /> | |
344 | + <item name="main" type="462c0819:PsiDirectoryNode" /> | |
345 | + <item name="resources" type="462c0819:PsiDirectoryNode" /> | |
346 | + <item name="templates" type="462c0819:PsiDirectoryNode" /> | |
347 | + <item name="config" type="462c0819:PsiDirectoryNode" /> | |
348 | + </path> | |
349 | + <path> | |
350 | + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | |
351 | + <item name="wms2" type="462c0819:PsiDirectoryNode" /> | |
352 | + <item name="src" type="462c0819:PsiDirectoryNode" /> | |
353 | + <item name="main" type="462c0819:PsiDirectoryNode" /> | |
354 | + <item name="resources" type="462c0819:PsiDirectoryNode" /> | |
355 | + <item name="templates" type="462c0819:PsiDirectoryNode" /> | |
356 | + <item name="config" type="462c0819:PsiDirectoryNode" /> | |
357 | + <item name="container" type="462c0819:PsiDirectoryNode" /> | |
358 | + </path> | |
359 | + <path> | |
360 | + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | |
361 | + <item name="wms2" type="462c0819:PsiDirectoryNode" /> | |
362 | + <item name="src" type="462c0819:PsiDirectoryNode" /> | |
363 | + <item name="main" type="462c0819:PsiDirectoryNode" /> | |
364 | + <item name="resources" type="462c0819:PsiDirectoryNode" /> | |
365 | + <item name="templates" type="462c0819:PsiDirectoryNode" /> | |
366 | + <item name="inventory" type="462c0819:PsiDirectoryNode" /> | |
367 | + </path> | |
368 | + <path> | |
369 | + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | |
370 | + <item name="wms2" type="462c0819:PsiDirectoryNode" /> | |
371 | + <item name="src" type="462c0819:PsiDirectoryNode" /> | |
372 | + <item name="main" type="462c0819:PsiDirectoryNode" /> | |
373 | + <item name="resources" type="462c0819:PsiDirectoryNode" /> | |
374 | + <item name="templates" type="462c0819:PsiDirectoryNode" /> | |
375 | + <item name="inventory" type="462c0819:PsiDirectoryNode" /> | |
376 | + <item name="inventoryTransaction" type="462c0819:PsiDirectoryNode" /> | |
377 | + </path> | |
378 | + <path> | |
379 | + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | |
380 | + <item name="wms2" type="462c0819:PsiDirectoryNode" /> | |
381 | + <item name="src" type="462c0819:PsiDirectoryNode" /> | |
382 | + <item name="main" type="462c0819:PsiDirectoryNode" /> | |
383 | + <item name="resources" type="462c0819:PsiDirectoryNode" /> | |
384 | + <item name="templates" type="462c0819:PsiDirectoryNode" /> | |
385 | + <item name="receipt" type="462c0819:PsiDirectoryNode" /> | |
386 | + </path> | |
387 | + <path> | |
388 | + <item name="wms2" type="b2602c69:ProjectViewProjectNode" /> | |
389 | + <item name="wms2" type="462c0819:PsiDirectoryNode" /> | |
390 | + <item name="src" type="462c0819:PsiDirectoryNode" /> | |
391 | + <item name="main" type="462c0819:PsiDirectoryNode" /> | |
392 | + <item name="resources" type="462c0819:PsiDirectoryNode" /> | |
393 | + <item name="templates" type="462c0819:PsiDirectoryNode" /> | |
394 | + <item name="receipt" type="462c0819:PsiDirectoryNode" /> | |
395 | + <item name="receiptHeader" type="462c0819:PsiDirectoryNode" /> | |
396 | + </path> | |
397 | + </expand> | |
398 | + <select /> | |
399 | + </subPane> | |
400 | + </pane> | |
401 | + <pane id="Scope" /> | |
402 | + </panes> | |
403 | + </component> | |
52 | 404 | <component name="PropertiesComponent"> |
53 | 405 | <property name="ASKED_ADD_EXTERNAL_FILES" value="true" /> |
54 | 406 | <property name="DefaultHtmlFileTemplate" value="HTML File" /> |
... | ... | @@ -58,6 +410,7 @@ |
58 | 410 | <property name="RequestMappingsPanelWidth1" value="75" /> |
59 | 411 | <property name="WebServerToolWindowFactoryState" value="false" /> |
60 | 412 | <property name="aspect.path.notification.shown" value="true" /> |
413 | + <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1577352095697" /> | |
61 | 414 | <property name="full.screen.before.presentation.mode" value="false" /> |
62 | 415 | <property name="last_opened_file_path" value="$PROJECT_DIR$/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable" /> |
63 | 416 | <property name="node.js.detected.package.eslint" value="true" /> |
... | ... | @@ -66,6 +419,7 @@ |
66 | 419 | <property name="node.js.path.for.package.tslint" value="project" /> |
67 | 420 | <property name="node.js.selected.package.eslint" value="(autodetect)" /> |
68 | 421 | <property name="node.js.selected.package.tslint" value="(autodetect)" /> |
422 | + <property name="nodejs_package_manager_path" value="npm" /> | |
69 | 423 | <property name="project.structure.last.edited" value="Modules" /> |
70 | 424 | <property name="project.structure.proportion" value="0.15429688" /> |
71 | 425 | <property name="project.structure.side.proportion" value="0.2" /> |
... | ... | @@ -73,10 +427,22 @@ |
73 | 427 | <property name="settings.editor.selected.configurable" value="preferences.pluginManager" /> |
74 | 428 | </component> |
75 | 429 | <component name="RecentsManager"> |
430 | + <key name="MoveFile.RECENT_KEYS"> | |
431 | + <recent name="E:\code\wms2\src\main\resources\templates\config\configWarning" /> | |
432 | + </key> | |
433 | + <key name="CopyClassDialog.RECENTS_KEY"> | |
434 | + <recent name="com.huaheng.api.general.domain" /> | |
435 | + </key> | |
76 | 436 | <key name="CopyFile.RECENT_KEYS"> |
437 | + <recent name="D:\wms2\src\main\resources\templates\config\container" /> | |
77 | 438 | <recent name="E:\code\wms2\src\main\resources\static\ajax\libs\bootstrap-table\extensions\editable" /> |
78 | 439 | </key> |
79 | 440 | </component> |
441 | + <component name="RunAnythingCache"> | |
442 | + <option name="myCommands"> | |
443 | + <command value="," /> | |
444 | + </option> | |
445 | + </component> | |
80 | 446 | <component name="RunDashboard"> |
81 | 447 | <option name="configurationTypes"> |
82 | 448 | <set> |
... | ... | @@ -93,17 +459,34 @@ |
93 | 459 | </RuleState> |
94 | 460 | </list> |
95 | 461 | </option> |
462 | + <option name="contentProportion" value="0.012987013" /> | |
96 | 463 | </component> |
97 | - <component name="RunManager" selected="Spring Boot.HuaHengApplication"> | |
98 | - <configuration name="ReceiptContainerHeaderServiceImpl" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true"> | |
99 | - <option name="MAIN_CLASS_NAME" value="com.huaheng.pc.receipt.receiptContainerHeader.service.ReceiptContainerHeaderServiceImpl" /> | |
464 | + <component name="RunManager" selected="Spring Boot.HuaHengApplication (1)"> | |
465 | + <configuration name="EncryptPassword" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true"> | |
466 | + <option name="MAIN_CLASS_NAME" value="com.huaheng.test.EncryptPassword" /> | |
467 | + <module name="huaheng" /> | |
468 | + <extension name="coverage"> | |
469 | + <pattern> | |
470 | + <option name="PATTERN" value="com.huaheng.test.*" /> | |
471 | + <option name="ENABLED" value="true" /> | |
472 | + </pattern> | |
473 | + </extension> | |
474 | + <method v="2"> | |
475 | + <option name="Make" enabled="true" /> | |
476 | + </method> | |
477 | + </configuration> | |
478 | + <configuration name="MqTest.send" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true"> | |
100 | 479 | <module name="huaheng" /> |
101 | 480 | <extension name="coverage"> |
102 | 481 | <pattern> |
103 | - <option name="PATTERN" value="com.huaheng.pc.receipt.receiptContainerHeader.service.*" /> | |
482 | + <option name="PATTERN" value="com.huaheng.test.*" /> | |
104 | 483 | <option name="ENABLED" value="true" /> |
105 | 484 | </pattern> |
106 | 485 | </extension> |
486 | + <option name="PACKAGE_NAME" value="com.huaheng.test" /> | |
487 | + <option name="MAIN_CLASS_NAME" value="com.huaheng.test.MqTest" /> | |
488 | + <option name="METHOD_NAME" value="send" /> | |
489 | + <option name="TEST_OBJECT" value="method" /> | |
107 | 490 | <method v="2"> |
108 | 491 | <option name="Make" enabled="true" /> |
109 | 492 | </method> |
... | ... | @@ -124,6 +507,19 @@ |
124 | 507 | <option name="Make" enabled="true" /> |
125 | 508 | </method> |
126 | 509 | </configuration> |
510 | + <configuration name="HuaHengApplication (1)" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true"> | |
511 | + <module name="wms2" /> | |
512 | + <extension name="coverage"> | |
513 | + <pattern> | |
514 | + <option name="PATTERN" value="com.huaheng.*" /> | |
515 | + <option name="ENABLED" value="true" /> | |
516 | + </pattern> | |
517 | + </extension> | |
518 | + <option name="SPRING_BOOT_MAIN_CLASS" value="com.huaheng.HuaHengApplication" /> | |
519 | + <method v="2"> | |
520 | + <option name="Make" enabled="true" /> | |
521 | + </method> | |
522 | + </configuration> | |
127 | 523 | <configuration name="HuaHengApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true"> |
128 | 524 | <module name="huaheng" /> |
129 | 525 | <extension name="coverage"> |
... | ... | @@ -134,41 +530,35 @@ |
134 | 530 | </extension> |
135 | 531 | <option name="SPRING_BOOT_MAIN_CLASS" value="com.huaheng.HuaHengApplication" /> |
136 | 532 | <option name="ALTERNATIVE_JRE_PATH" /> |
137 | - <option name="UPDATE_ACTION_UPDATE_POLICY" value="UpdateClassesAndResources" /> | |
533 | + <option name="UPDATE_ACTION_UPDATE_POLICY" value="UpdateResources" /> | |
138 | 534 | <option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" /> |
139 | 535 | <method v="2"> |
140 | 536 | <option name="Make" enabled="true" /> |
141 | 537 | </method> |
142 | 538 | </configuration> |
143 | 539 | <list> |
144 | - <item itemvalue="Application.ReceiptContainerHeaderServiceImpl" /> | |
540 | + <item itemvalue="Application.EncryptPassword" /> | |
541 | + <item itemvalue="JUnit.MqTest.send" /> | |
145 | 542 | <item itemvalue="JUnit.ServiceTest.sendSimpleMail" /> |
146 | 543 | <item itemvalue="Spring Boot.HuaHengApplication" /> |
544 | + <item itemvalue="Spring Boot.HuaHengApplication (1)" /> | |
147 | 545 | </list> |
148 | 546 | <recent_temporary> |
149 | 547 | <list> |
548 | + <item itemvalue="Spring Boot.HuaHengApplication (1)" /> | |
150 | 549 | <item itemvalue="Spring Boot.HuaHengApplication" /> |
151 | - <item itemvalue="Application.ReceiptContainerHeaderServiceImpl" /> | |
152 | 550 | <item itemvalue="JUnit.ServiceTest.sendSimpleMail" /> |
551 | + <item itemvalue="JUnit.MqTest.send" /> | |
552 | + <item itemvalue="Application.EncryptPassword" /> | |
153 | 553 | </list> |
154 | 554 | </recent_temporary> |
155 | 555 | </component> |
156 | 556 | <component name="ServiceViewManager"> |
157 | 557 | <option name="allServicesViewState"> |
158 | 558 | <serviceView> |
159 | - <option name="contentProportion" value="0.1612554" /> | |
559 | + <option name="contentProportion" value="0.11255411" /> | |
160 | 560 | <treeState> |
161 | - <expand> | |
162 | - <path> | |
163 | - <item name="services root" type="e789fda9:ObjectUtils$Sentinel" /> | |
164 | - <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@c531c3e8" type="7427dc5b:ServiceModel$ServiceGroupNode" /> | |
165 | - </path> | |
166 | - <path> | |
167 | - <item name="services root" type="e789fda9:ObjectUtils$Sentinel" /> | |
168 | - <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@c531c3e8" type="7427dc5b:ServiceModel$ServiceGroupNode" /> | |
169 | - <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@ef9dc71e" type="7427dc5b:ServiceModel$ServiceGroupNode" /> | |
170 | - </path> | |
171 | - </expand> | |
561 | + <expand /> | |
172 | 562 | <select /> |
173 | 563 | </treeState> |
174 | 564 | </serviceView> |
... | ... | @@ -271,154 +661,104 @@ |
271 | 661 | <workItem from="1569745589865" duration="2739000" /> |
272 | 662 | <workItem from="1569748443357" duration="438000" /> |
273 | 663 | <workItem from="1569803438585" duration="13789000" /> |
274 | - <workItem from="1570581146682" duration="9295000" /> | |
275 | - </task> | |
276 | - <task id="LOCAL-00001" summary="修改添加物料时使用物料类别生成物料编码"> | |
277 | - <created>1567664306836</created> | |
278 | - <option name="number" value="00001" /> | |
279 | - <option name="presentableId" value="LOCAL-00001" /> | |
280 | - <option name="project" value="LOCAL" /> | |
281 | - <updated>1567664306836</updated> | |
282 | - </task> | |
283 | - <task id="LOCAL-00002" summary="修改添加物料时使用物料类别生成物料编码"> | |
284 | - <created>1567936901056</created> | |
285 | - <option name="number" value="00002" /> | |
286 | - <option name="presentableId" value="LOCAL-00002" /> | |
287 | - <option name="project" value="LOCAL" /> | |
288 | - <updated>1567936901056</updated> | |
289 | - </task> | |
290 | - <task id="LOCAL-00003" summary="修改质检页面、添加完成质检"> | |
291 | - <created>1568025230030</created> | |
292 | - <option name="number" value="00003" /> | |
293 | - <option name="presentableId" value="LOCAL-00003" /> | |
294 | - <option name="project" value="LOCAL" /> | |
295 | - <updated>1568025230030</updated> | |
296 | - </task> | |
297 | - <task id="LOCAL-00004" summary="修改质检页面、添加完成质检"> | |
298 | - <created>1568110494128</created> | |
299 | - <option name="number" value="00004" /> | |
300 | - <option name="presentableId" value="LOCAL-00004" /> | |
301 | - <option name="project" value="LOCAL" /> | |
302 | - <updated>1568110494128</updated> | |
303 | - </task> | |
304 | - <task id="LOCAL-00005" summary="修复入库质检请求地址冲突"> | |
305 | - <created>1568162392627</created> | |
306 | - <option name="number" value="00005" /> | |
307 | - <option name="presentableId" value="LOCAL-00005" /> | |
308 | - <option name="project" value="LOCAL" /> | |
309 | - <updated>1568162392627</updated> | |
310 | - </task> | |
311 | - <task id="LOCAL-00006" summary="添加入库单打印"> | |
312 | - <created>1568174134623</created> | |
313 | - <option name="number" value="00006" /> | |
314 | - <option name="presentableId" value="LOCAL-00006" /> | |
315 | - <option name="project" value="LOCAL" /> | |
316 | - <updated>1568174134623</updated> | |
317 | - </task> | |
318 | - <task id="LOCAL-00007" summary="修改入库单审核移动到入库单头表"> | |
319 | - <created>1568186231357</created> | |
320 | - <option name="number" value="00007" /> | |
321 | - <option name="presentableId" value="LOCAL-00007" /> | |
322 | - <option name="project" value="LOCAL" /> | |
323 | - <updated>1568186231357</updated> | |
324 | - </task> | |
325 | - <task id="LOCAL-00008" summary="修改任务完成更新库位的错误"> | |
326 | - <created>1568191139437</created> | |
327 | - <option name="number" value="00008" /> | |
328 | - <option name="presentableId" value="LOCAL-00008" /> | |
329 | - <option name="project" value="LOCAL" /> | |
330 | - <updated>1568191139437</updated> | |
331 | - </task> | |
332 | - <task id="LOCAL-00009" summary="修改入库类型自动判断"> | |
333 | - <created>1568259182874</created> | |
334 | - <option name="number" value="00009" /> | |
335 | - <option name="presentableId" value="LOCAL-00009" /> | |
336 | - <option name="project" value="LOCAL" /> | |
337 | - <updated>1568259182874</updated> | |
338 | - </task> | |
339 | - <task id="LOCAL-00010" summary="修改入库单页面"> | |
340 | - <created>1568281128408</created> | |
341 | - <option name="number" value="00010" /> | |
342 | - <option name="presentableId" value="LOCAL-00010" /> | |
343 | - <option name="project" value="LOCAL" /> | |
344 | - <updated>1568281128408</updated> | |
345 | - </task> | |
346 | - <task id="LOCAL-00011" summary="修改入库单页面,入库单审核,质检页面后台跳转接口"> | |
347 | - <created>1568616697584</created> | |
348 | - <option name="number" value="00011" /> | |
349 | - <option name="presentableId" value="LOCAL-00011" /> | |
350 | - <option name="project" value="LOCAL" /> | |
351 | - <updated>1568616697584</updated> | |
352 | - </task> | |
353 | - <task id="LOCAL-00012" summary="修改 入库收货,生成上架任务自动执行定位"> | |
354 | - <created>1568692224269</created> | |
355 | - <option name="number" value="00012" /> | |
356 | - <option name="presentableId" value="LOCAL-00012" /> | |
357 | - <option name="project" value="LOCAL" /> | |
358 | - <updated>1568692224269</updated> | |
359 | - </task> | |
360 | - <task id="LOCAL-00013" summary="修复商品管理、物料类别种bug"> | |
361 | - <created>1568784920330</created> | |
362 | - <option name="number" value="00013" /> | |
363 | - <option name="presentableId" value="LOCAL-00013" /> | |
364 | - <option name="project" value="LOCAL" /> | |
365 | - <updated>1568784920330</updated> | |
366 | - </task> | |
367 | - <task id="LOCAL-00014" summary="修改入库明细添加加载定位规则的错误"> | |
368 | - <created>1568788287608</created> | |
369 | - <option name="number" value="00014" /> | |
370 | - <option name="presentableId" value="LOCAL-00014" /> | |
371 | - <option name="project" value="LOCAL" /> | |
372 | - <updated>1568788287608</updated> | |
373 | - </task> | |
374 | - <task id="LOCAL-00015" summary="添加入库质检行内编辑"> | |
375 | - <created>1568857387442</created> | |
376 | - <option name="number" value="00015" /> | |
377 | - <option name="presentableId" value="LOCAL-00015" /> | |
378 | - <option name="project" value="LOCAL" /> | |
379 | - <updated>1568857387442</updated> | |
380 | - </task> | |
381 | - <task id="LOCAL-00016" summary="行内编辑完成后更新数据库"> | |
382 | - <created>1568875291383</created> | |
383 | - <option name="number" value="00016" /> | |
384 | - <option name="presentableId" value="LOCAL-00016" /> | |
385 | - <option name="project" value="LOCAL" /> | |
386 | - <updated>1568875291383</updated> | |
387 | - </task> | |
388 | - <task id="LOCAL-00017" summary="修改质检登记使用bootstarp boot原生方法初始化"> | |
389 | - <created>1568885639106</created> | |
390 | - <option name="number" value="00017" /> | |
391 | - <option name="presentableId" value="LOCAL-00017" /> | |
392 | - <option name="project" value="LOCAL" /> | |
393 | - <updated>1568885639106</updated> | |
394 | - </task> | |
395 | - <task id="LOCAL-00018" summary="表单头创建时间添加默认创建时间 开始时间默认提前一周,结束时间默认当天"> | |
396 | - <created>1569207792528</created> | |
397 | - <option name="number" value="00018" /> | |
398 | - <option name="presentableId" value="LOCAL-00018" /> | |
399 | - <option name="project" value="LOCAL" /> | |
400 | - <updated>1569207792528</updated> | |
401 | - </task> | |
402 | - <task id="LOCAL-00019" summary="配置中所有页面添加重置按钮"> | |
403 | - <created>1569218224945</created> | |
404 | - <option name="number" value="00019" /> | |
405 | - <option name="presentableId" value="LOCAL-00019" /> | |
406 | - <option name="project" value="LOCAL" /> | |
407 | - <updated>1569218224945</updated> | |
408 | - </task> | |
409 | - <task id="LOCAL-00020" summary="收货添加定位、取消定位、取消组盘按钮"> | |
410 | - <created>1569232154274</created> | |
411 | - <option name="number" value="00020" /> | |
412 | - <option name="presentableId" value="LOCAL-00020" /> | |
413 | - <option name="project" value="LOCAL" /> | |
414 | - <updated>1569232154274</updated> | |
415 | - </task> | |
416 | - <task id="LOCAL-00021" summary="修改入库单数量使用BigDecimal类型,修改入库单添加、修改、物理类型添加和修改页面"> | |
417 | - <created>1569318560852</created> | |
418 | - <option name="number" value="00021" /> | |
419 | - <option name="presentableId" value="LOCAL-00021" /> | |
420 | - <option name="project" value="LOCAL" /> | |
421 | - <updated>1569318560852</updated> | |
664 | + <workItem from="1570581146682" duration="20927000" /> | |
665 | + <workItem from="1570613992837" duration="3000" /> | |
666 | + <workItem from="1570667742663" duration="162000" /> | |
667 | + <workItem from="1570667919475" duration="15928000" /> | |
668 | + <workItem from="1570754346827" duration="21195000" /> | |
669 | + <workItem from="1570840100481" duration="23954000" /> | |
670 | + <workItem from="1571032298609" duration="8129000" /> | |
671 | + <workItem from="1571043219515" duration="603000" /> | |
672 | + <workItem from="1571101539586" duration="10573000" /> | |
673 | + <workItem from="1571187054671" duration="1189000" /> | |
674 | + <workItem from="1571272889222" duration="603000" /> | |
675 | + <workItem from="1571273737925" duration="85000" /> | |
676 | + <workItem from="1571273837562" duration="3768000" /> | |
677 | + <workItem from="1571300400236" duration="564000" /> | |
678 | + <workItem from="1571360965270" duration="10015000" /> | |
679 | + <workItem from="1571618681667" duration="100000" /> | |
680 | + <workItem from="1571618796133" duration="5393000" /> | |
681 | + <workItem from="1571650852097" duration="388000" /> | |
682 | + <workItem from="1571730992859" duration="6211000" /> | |
683 | + <workItem from="1571793589446" duration="4409000" /> | |
684 | + <workItem from="1571802162041" duration="1239000" /> | |
685 | + <workItem from="1571811985419" duration="1151000" /> | |
686 | + <workItem from="1571813176633" duration="2109000" /> | |
687 | + <workItem from="1571877928640" duration="88000" /> | |
688 | + <workItem from="1571883105941" duration="935000" /> | |
689 | + <workItem from="1571884165422" duration="4991000" /> | |
690 | + <workItem from="1571898249991" duration="4232000" /> | |
691 | + <workItem from="1571983100230" duration="4800000" /> | |
692 | + <workItem from="1572222845790" duration="23000" /> | |
693 | + <workItem from="1572223191279" duration="31000" /> | |
694 | + <workItem from="1572241535551" duration="625000" /> | |
695 | + <workItem from="1572243079374" duration="68000" /> | |
696 | + <workItem from="1572244739518" duration="7805000" /> | |
697 | + <workItem from="1572309622449" duration="584000" /> | |
698 | + <workItem from="1572311557063" duration="1863000" /> | |
699 | + <workItem from="1572320193751" duration="472000" /> | |
700 | + <workItem from="1572320671127" duration="1982000" /> | |
701 | + <workItem from="1572421740780" duration="2214000" /> | |
702 | + <workItem from="1572508717052" duration="767000" /> | |
703 | + <workItem from="1572510572527" duration="589000" /> | |
704 | + <workItem from="1572512185944" duration="8000" /> | |
705 | + <workItem from="1572589020835" duration="476000" /> | |
706 | + <workItem from="1572590452229" duration="1502000" /> | |
707 | + <workItem from="1572592323148" duration="6000" /> | |
708 | + <workItem from="1572832658949" duration="959000" /> | |
709 | + <workItem from="1572837775650" duration="12521000" /> | |
710 | + <workItem from="1572914081530" duration="12074000" /> | |
711 | + <workItem from="1573434480300" duration="23000" /> | |
712 | + <workItem from="1573434565742" duration="27000" /> | |
713 | + <workItem from="1573434609619" duration="5949000" /> | |
714 | + <workItem from="1573443267924" duration="3068000" /> | |
715 | + <workItem from="1573451336746" duration="12626000" /> | |
716 | + <workItem from="1573519499410" duration="1633000" /> | |
717 | + <workItem from="1573521159413" duration="5332000" /> | |
718 | + <workItem from="1573634144466" duration="1079000" /> | |
719 | + <workItem from="1573695391377" duration="439000" /> | |
720 | + <workItem from="1573695840147" duration="1238000" /> | |
721 | + <workItem from="1573721771390" duration="57000" /> | |
722 | + <workItem from="1573803890850" duration="1260000" /> | |
723 | + <workItem from="1573805176417" duration="3000" /> | |
724 | + <workItem from="1574037798176" duration="319000" /> | |
725 | + <workItem from="1574129991269" duration="1422000" /> | |
726 | + <workItem from="1574149477717" duration="150000" /> | |
727 | + <workItem from="1574152276042" duration="2135000" /> | |
728 | + <workItem from="1574211087867" duration="590000" /> | |
729 | + <workItem from="1574211685051" duration="669000" /> | |
730 | + <workItem from="1574213648864" duration="15909000" /> | |
731 | + <workItem from="1574315910239" duration="2919000" /> | |
732 | + <workItem from="1574320594485" duration="4805000" /> | |
733 | + <workItem from="1574383470234" duration="1917000" /> | |
734 | + <workItem from="1574402886027" duration="352000" /> | |
735 | + <workItem from="1574406573271" duration="10000" /> | |
736 | + <workItem from="1574413187883" duration="2458000" /> | |
737 | + <workItem from="1574647559026" duration="1549000" /> | |
738 | + <workItem from="1574650217287" duration="1426000" /> | |
739 | + <workItem from="1574663555433" duration="234000" /> | |
740 | + <workItem from="1574667250107" duration="248000" /> | |
741 | + <workItem from="1574667819508" duration="853000" /> | |
742 | + <workItem from="1574668813857" duration="78000" /> | |
743 | + <workItem from="1574668955593" duration="4842000" /> | |
744 | + <workItem from="1574734862621" duration="5289000" /> | |
745 | + <workItem from="1574753109186" duration="1868000" /> | |
746 | + <workItem from="1574758859383" duration="2324000" /> | |
747 | + <workItem from="1574816203456" duration="3882000" /> | |
748 | + <workItem from="1574826942468" duration="1951000" /> | |
749 | + <workItem from="1574845813928" duration="13000" /> | |
750 | + <workItem from="1574988822426" duration="270000" /> | |
751 | + <workItem from="1577065229491" duration="6318000" /> | |
752 | + <workItem from="1577147586156" duration="4281000" /> | |
753 | + <workItem from="1577172416745" duration="4156000" /> | |
754 | + <workItem from="1577234053132" duration="26850000" /> | |
755 | + <workItem from="1577321748902" duration="21403000" /> | |
756 | + <workItem from="1577406875935" duration="16374000" /> | |
757 | + <workItem from="1577436625365" duration="3084000" /> | |
758 | + <workItem from="1577665795897" duration="4942000" /> | |
759 | + <workItem from="1577670757674" duration="6000" /> | |
760 | + <workItem from="1577670887870" duration="8057000" /> | |
761 | + <workItem from="1577687039415" duration="15130000" /> | |
422 | 762 | </task> |
423 | 763 | <task id="LOCAL-00022" summary="修改物料管理中物料类型使用物料类别表,不在使用数据字典"> |
424 | 764 | <created>1569395439782</created> |
... | ... | @@ -511,9 +851,304 @@ |
511 | 851 | <option name="project" value="LOCAL" /> |
512 | 852 | <updated>1570582333467</updated> |
513 | 853 | </task> |
514 | - <option name="localTasksCounter" value="35" /> | |
854 | + <task id="LOCAL-00035" summary="添加流程时自动添加模块和类型 修改入库到货通知"> | |
855 | + <created>1570590631384</created> | |
856 | + <option name="number" value="00035" /> | |
857 | + <option name="presentableId" value="LOCAL-00035" /> | |
858 | + <option name="project" value="LOCAL" /> | |
859 | + <updated>1570590631384</updated> | |
860 | + </task> | |
861 | + <task id="LOCAL-00036" summary="修改入库单明细中 入库流程和是否质检的显示"> | |
862 | + <created>1570677316403</created> | |
863 | + <option name="number" value="00036" /> | |
864 | + <option name="presentableId" value="LOCAL-00036" /> | |
865 | + <option name="project" value="LOCAL" /> | |
866 | + <updated>1570677316403</updated> | |
867 | + </task> | |
868 | + <task id="LOCAL-00037" summary="修改流程明细添加时模块可修改的问题"> | |
869 | + <created>1570680001633</created> | |
870 | + <option name="number" value="00037" /> | |
871 | + <option name="presentableId" value="LOCAL-00037" /> | |
872 | + <option name="project" value="LOCAL" /> | |
873 | + <updated>1570680001633</updated> | |
874 | + </task> | |
875 | + <task id="LOCAL-00038" summary="修改规则配置添加时类型选择项"> | |
876 | + <created>1570687475164</created> | |
877 | + <option name="number" value="00038" /> | |
878 | + <option name="presentableId" value="LOCAL-00038" /> | |
879 | + <option name="project" value="LOCAL" /> | |
880 | + <updated>1570687475164</updated> | |
881 | + </task> | |
882 | + <task id="LOCAL-00039" summary="修改质检登记查询code"> | |
883 | + <created>1570778509824</created> | |
884 | + <option name="number" value="00039" /> | |
885 | + <option name="presentableId" value="LOCAL-00039" /> | |
886 | + <option name="project" value="LOCAL" /> | |
887 | + <updated>1570778509824</updated> | |
888 | + </task> | |
889 | + <task id="LOCAL-00040" summary="添加站台表"> | |
890 | + <created>1570781862179</created> | |
891 | + <option name="number" value="00040" /> | |
892 | + <option name="presentableId" value="LOCAL-00040" /> | |
893 | + <option name="project" value="LOCAL" /> | |
894 | + <updated>1570781862179</updated> | |
895 | + </task> | |
896 | + <task id="LOCAL-00041" summary="修改规则配置"> | |
897 | + <created>1570782180540</created> | |
898 | + <option name="number" value="00041" /> | |
899 | + <option name="presentableId" value="LOCAL-00041" /> | |
900 | + <option name="project" value="LOCAL" /> | |
901 | + <updated>1570782180540</updated> | |
902 | + </task> | |
903 | + <task id="LOCAL-00042" summary="添加仓位分配接口"> | |
904 | + <created>1570866304365</created> | |
905 | + <option name="number" value="00042" /> | |
906 | + <option name="presentableId" value="LOCAL-00042" /> | |
907 | + <option name="project" value="LOCAL" /> | |
908 | + <updated>1570866304365</updated> | |
909 | + </task> | |
910 | + <task id="LOCAL-00043" summary="修改入库单头尾状态更新"> | |
911 | + <created>1570869466088</created> | |
912 | + <option name="number" value="00043" /> | |
913 | + <option name="presentableId" value="LOCAL-00043" /> | |
914 | + <option name="project" value="LOCAL" /> | |
915 | + <updated>1570869466088</updated> | |
916 | + </task> | |
917 | + <task id="LOCAL-00044" summary="添加站台表,入库组盘头表和任务表添加站台,默认为0"> | |
918 | + <created>1571036164747</created> | |
919 | + <option name="number" value="00044" /> | |
920 | + <option name="presentableId" value="LOCAL-00044" /> | |
921 | + <option name="project" value="LOCAL" /> | |
922 | + <updated>1571036164747</updated> | |
923 | + </task> | |
924 | + <task id="LOCAL-00045" summary="修改任务执行接口"> | |
925 | + <created>1571039090453</created> | |
926 | + <option name="number" value="00045" /> | |
927 | + <option name="presentableId" value="LOCAL-00045" /> | |
928 | + <option name="project" value="LOCAL" /> | |
929 | + <updated>1571039090453</updated> | |
930 | + </task> | |
931 | + <task id="LOCAL-00046" summary="修改接口实体类 修改仓位分配接口"> | |
932 | + <created>1571103433656</created> | |
933 | + <option name="number" value="00046" /> | |
934 | + <option name="presentableId" value="LOCAL-00046" /> | |
935 | + <option name="project" value="LOCAL" /> | |
936 | + <updated>1571103433656</updated> | |
937 | + </task> | |
938 | + <task id="LOCAL-00047" summary="修改系统管理参数配置添加和修改页面中的模块和类型"> | |
939 | + <created>1571108638507</created> | |
940 | + <option name="number" value="00047" /> | |
941 | + <option name="presentableId" value="LOCAL-00047" /> | |
942 | + <option name="project" value="LOCAL" /> | |
943 | + <updated>1571108638507</updated> | |
944 | + </task> | |
945 | + <task id="LOCAL-00048" summary="修改重入和仓位下发接口"> | |
946 | + <created>1571127851430</created> | |
947 | + <option name="number" value="00048" /> | |
948 | + <option name="presentableId" value="LOCAL-00048" /> | |
949 | + <option name="project" value="LOCAL" /> | |
950 | + <updated>1571127851430</updated> | |
951 | + </task> | |
952 | + <task id="LOCAL-00049" summary="删除质检头表新增按钮"> | |
953 | + <created>1571300858040</created> | |
954 | + <option name="number" value="00049" /> | |
955 | + <option name="presentableId" value="LOCAL-00049" /> | |
956 | + <option name="project" value="LOCAL" /> | |
957 | + <updated>1571300858040</updated> | |
958 | + </task> | |
959 | + <task id="LOCAL-00050" summary="添加多环境配置文件"> | |
960 | + <created>1571367987564</created> | |
961 | + <option name="number" value="00050" /> | |
962 | + <option name="presentableId" value="LOCAL-00050" /> | |
963 | + <option name="project" value="LOCAL" /> | |
964 | + <updated>1571367987564</updated> | |
965 | + </task> | |
966 | + <task id="LOCAL-00051" summary="修改收货是是否收完的判断"> | |
967 | + <created>1571650918354</created> | |
968 | + <option name="number" value="00051" /> | |
969 | + <option name="presentableId" value="LOCAL-00051" /> | |
970 | + <option name="project" value="LOCAL" /> | |
971 | + <updated>1571650918355</updated> | |
972 | + </task> | |
973 | + <task id="LOCAL-00052" summary="修改收货是是否收完的判断"> | |
974 | + <created>1571651232169</created> | |
975 | + <option name="number" value="00052" /> | |
976 | + <option name="presentableId" value="LOCAL-00052" /> | |
977 | + <option name="project" value="LOCAL" /> | |
978 | + <updated>1571651232169</updated> | |
979 | + </task> | |
980 | + <task id="LOCAL-00053" summary="添加仓库复制"> | |
981 | + <created>1571799829411</created> | |
982 | + <option name="number" value="00053" /> | |
983 | + <option name="presentableId" value="LOCAL-00053" /> | |
984 | + <option name="project" value="LOCAL" /> | |
985 | + <updated>1571799829412</updated> | |
986 | + </task> | |
987 | + <task id="LOCAL-00054" summary="修改收货是是否手动指定库位,入库单状态的更新"> | |
988 | + <created>1571884236981</created> | |
989 | + <option name="number" value="00054" /> | |
990 | + <option name="presentableId" value="LOCAL-00054" /> | |
991 | + <option name="project" value="LOCAL" /> | |
992 | + <updated>1571884236981</updated> | |
993 | + </task> | |
994 | + <task id="LOCAL-00055" summary="修改容器已组盘的提示信息 修改库位生成库位编码使用库位类型编码"> | |
995 | + <created>1571888987512</created> | |
996 | + <option name="number" value="00055" /> | |
997 | + <option name="presentableId" value="LOCAL-00055" /> | |
998 | + <option name="project" value="LOCAL" /> | |
999 | + <updated>1571888987512</updated> | |
1000 | + </task> | |
1001 | + <task id="LOCAL-00056" summary="修改仓库复制"> | |
1002 | + <created>1571900347581</created> | |
1003 | + <option name="number" value="00056" /> | |
1004 | + <option name="presentableId" value="LOCAL-00056" /> | |
1005 | + <option name="project" value="LOCAL" /> | |
1006 | + <updated>1571900347582</updated> | |
1007 | + </task> | |
1008 | + <task id="LOCAL-00057" summary="修改返回类型"> | |
1009 | + <created>1571901488341</created> | |
1010 | + <option name="number" value="00057" /> | |
1011 | + <option name="presentableId" value="LOCAL-00057" /> | |
1012 | + <option name="project" value="LOCAL" /> | |
1013 | + <updated>1571901488341</updated> | |
1014 | + </task> | |
1015 | + <task id="LOCAL-00058" summary="修改库位监控"> | |
1016 | + <created>1572321206210</created> | |
1017 | + <option name="number" value="00058" /> | |
1018 | + <option name="presentableId" value="LOCAL-00058" /> | |
1019 | + <option name="project" value="LOCAL" /> | |
1020 | + <updated>1572321206210</updated> | |
1021 | + </task> | |
1022 | + <task id="LOCAL-00059" summary="修改库位监控tips"> | |
1023 | + <created>1572322002967</created> | |
1024 | + <option name="number" value="00059" /> | |
1025 | + <option name="presentableId" value="LOCAL-00059" /> | |
1026 | + <option name="project" value="LOCAL" /> | |
1027 | + <updated>1572322002967</updated> | |
1028 | + </task> | |
1029 | + <task id="LOCAL-00060" summary="修改收发送邮件注释"> | |
1030 | + <created>1572510829993</created> | |
1031 | + <option name="number" value="00060" /> | |
1032 | + <option name="presentableId" value="LOCAL-00060" /> | |
1033 | + <option name="project" value="LOCAL" /> | |
1034 | + <updated>1572510829993</updated> | |
1035 | + </task> | |
1036 | + <task id="LOCAL-00061" summary="添加入库下发接口"> | |
1037 | + <created>1572937952886</created> | |
1038 | + <option name="number" value="00061" /> | |
1039 | + <option name="presentableId" value="LOCAL-00061" /> | |
1040 | + <option name="project" value="LOCAL" /> | |
1041 | + <updated>1572937952886</updated> | |
1042 | + </task> | |
1043 | + <task id="LOCAL-00062" summary="修改入库多仓库报错"> | |
1044 | + <created>1573439368497</created> | |
1045 | + <option name="number" value="00062" /> | |
1046 | + <option name="presentableId" value="LOCAL-00062" /> | |
1047 | + <option name="project" value="LOCAL" /> | |
1048 | + <updated>1573439368497</updated> | |
1049 | + </task> | |
1050 | + <task id="LOCAL-00063" summary="添加物料最大量最小量预警、空库位预警"> | |
1051 | + <created>1573526280256</created> | |
1052 | + <option name="number" value="00063" /> | |
1053 | + <option name="presentableId" value="LOCAL-00063" /> | |
1054 | + <option name="project" value="LOCAL" /> | |
1055 | + <updated>1573526280257</updated> | |
1056 | + </task> | |
1057 | + <task id="LOCAL-00064" summary="添加基础数据接口和入库单下发下发接口"> | |
1058 | + <created>1574232706585</created> | |
1059 | + <option name="number" value="00064" /> | |
1060 | + <option name="presentableId" value="LOCAL-00064" /> | |
1061 | + <option name="project" value="LOCAL" /> | |
1062 | + <updated>1574232706585</updated> | |
1063 | + </task> | |
1064 | + <task id="LOCAL-00065" summary="更新消息确认,发生错误后拒绝消息,消息被队列丢弃"> | |
1065 | + <created>1574236213373</created> | |
1066 | + <option name="number" value="00065" /> | |
1067 | + <option name="presentableId" value="LOCAL-00065" /> | |
1068 | + <option name="project" value="LOCAL" /> | |
1069 | + <updated>1574236213373</updated> | |
1070 | + </task> | |
1071 | + <task id="LOCAL-00066" summary="修改时间搜索无效,添加入库单没有明细不可以提交审核"> | |
1072 | + <created>1574750425657</created> | |
1073 | + <option name="number" value="00066" /> | |
1074 | + <option name="presentableId" value="LOCAL-00066" /> | |
1075 | + <option name="project" value="LOCAL" /> | |
1076 | + <updated>1574750425657</updated> | |
1077 | + </task> | |
1078 | + <task id="LOCAL-00067" summary="修复接口bug,新增库存同步物料同步用户同步接口"> | |
1079 | + <created>1577352141668</created> | |
1080 | + <option name="number" value="00067" /> | |
1081 | + <option name="presentableId" value="LOCAL-00067" /> | |
1082 | + <option name="project" value="LOCAL" /> | |
1083 | + <updated>1577352141668</updated> | |
1084 | + </task> | |
1085 | + <task id="LOCAL-00068" summary="托盘条码打印"> | |
1086 | + <created>1577439445441</created> | |
1087 | + <option name="number" value="00068" /> | |
1088 | + <option name="presentableId" value="LOCAL-00068" /> | |
1089 | + <option name="project" value="LOCAL" /> | |
1090 | + <updated>1577439445443</updated> | |
1091 | + </task> | |
1092 | + <task id="LOCAL-00069" summary="托盘条码打印"> | |
1093 | + <created>1577668882647</created> | |
1094 | + <option name="number" value="00069" /> | |
1095 | + <option name="presentableId" value="LOCAL-00069" /> | |
1096 | + <option name="project" value="LOCAL" /> | |
1097 | + <updated>1577668882648</updated> | |
1098 | + </task> | |
1099 | + <task id="LOCAL-00070" summary="托盘条码打印"> | |
1100 | + <created>1577669193189</created> | |
1101 | + <option name="number" value="00070" /> | |
1102 | + <option name="presentableId" value="LOCAL-00070" /> | |
1103 | + <option name="project" value="LOCAL" /> | |
1104 | + <updated>1577669193189</updated> | |
1105 | + </task> | |
1106 | + <option name="localTasksCounter" value="71" /> | |
515 | 1107 | <servers /> |
516 | 1108 | </component> |
1109 | + <component name="TimeTrackingManager"> | |
1110 | + <option name="totallyTimeSpent" value="110601000" /> | |
1111 | + </component> | |
1112 | + <component name="ToolWindowManager"> | |
1113 | + <frame x="-7" y="-7" width="1550" height="838" extended-state="6" /> | |
1114 | + <editor active="true" /> | |
1115 | + <layout> | |
1116 | + <window_info content_ui="combo" id="Project" order="0" sideWeight="0.4978903" visible="true" weight="0.27680966" /> | |
1117 | + <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> | |
1118 | + <window_info id="Designer" order="2" /> | |
1119 | + <window_info id="Image Layers" order="3" /> | |
1120 | + <window_info id="Capture Tool" order="4" /> | |
1121 | + <window_info id="UI Designer" order="5" /> | |
1122 | + <window_info id="Favorites" order="6" sideWeight="0.5021097" side_tool="true" weight="0.308311" /> | |
1123 | + <window_info id="Web" order="7" side_tool="true" /> | |
1124 | + <window_info anchor="bottom" id="Message" order="0" /> | |
1125 | + <window_info anchor="bottom" id="Find" order="1" /> | |
1126 | + <window_info anchor="bottom" id="Run" order="2" /> | |
1127 | + <window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> | |
1128 | + <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> | |
1129 | + <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> | |
1130 | + <window_info anchor="bottom" id="TODO" order="6" /> | |
1131 | + <window_info anchor="bottom" id="Spring" order="7" /> | |
1132 | + <window_info anchor="bottom" id="Terminal" order="8" /> | |
1133 | + <window_info anchor="bottom" id="Docker" order="9" show_stripe_button="false" /> | |
1134 | + <window_info anchor="bottom" id="Event Log" order="10" sideWeight="0.09048257" side_tool="true" weight="0.44192636" /> | |
1135 | + <window_info anchor="bottom" id="Java Enterprise" order="11" /> | |
1136 | + <window_info anchor="bottom" id="Database Changes" order="12" /> | |
1137 | + <window_info anchor="bottom" id="Version Control" order="13" sideWeight="0.91152817" weight="0.3286119" /> | |
1138 | + <window_info anchor="bottom" id="Run Dashboard" order="14" sideWeight="0.9095174" weight="0.509915" /> | |
1139 | + <window_info anchor="bottom" id="Messages" order="15" sideWeight="0.49932975" weight="0.3286119" /> | |
1140 | + <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> | |
1141 | + <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> | |
1142 | + <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> | |
1143 | + <window_info anchor="right" id="Maven" order="3" weight="0.3297587" /> | |
1144 | + <window_info anchor="right" id="Palette" order="4" /> | |
1145 | + <window_info anchor="right" id="Capture Analysis" order="5" /> | |
1146 | + <window_info anchor="right" id="Database" order="6" /> | |
1147 | + <window_info anchor="right" id="Palette	" order="7" /> | |
1148 | + <window_info anchor="right" id="Theme Preview" order="8" /> | |
1149 | + <window_info anchor="right" id="Bean Validation" order="9" weight="0.3297587" /> | |
1150 | + </layout> | |
1151 | + </component> | |
517 | 1152 | <component name="TypeScriptGeneratedFilesManager"> |
518 | 1153 | <option name="version" value="1" /> |
519 | 1154 | </component> |
... | ... | @@ -523,41 +1158,60 @@ |
523 | 1158 | <entry key="MAIN"> |
524 | 1159 | <value> |
525 | 1160 | <State> |
1161 | + <option name="RECENTLY_FILTERED_USER_GROUPS"> | |
1162 | + <collection /> | |
1163 | + </option> | |
1164 | + <option name="RECENTLY_FILTERED_BRANCH_GROUPS"> | |
1165 | + <collection /> | |
1166 | + </option> | |
526 | 1167 | <option name="COLUMN_ORDER" /> |
527 | 1168 | </State> |
528 | 1169 | </value> |
529 | 1170 | </entry> |
530 | 1171 | </map> |
531 | 1172 | </option> |
1173 | + <option name="RECENT_FILTERS"> | |
1174 | + <map> | |
1175 | + <entry key="Branch"> | |
1176 | + <value> | |
1177 | + <list /> | |
1178 | + </value> | |
1179 | + </entry> | |
1180 | + <entry key="User"> | |
1181 | + <value> | |
1182 | + <list /> | |
1183 | + </value> | |
1184 | + </entry> | |
1185 | + </map> | |
1186 | + </option> | |
532 | 1187 | </component> |
533 | 1188 | <component name="VcsManagerConfiguration"> |
534 | - <option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" /> | |
535 | - <MESSAGE value="修改入库单页面" /> | |
536 | - <MESSAGE value="修改入库单页面,入库单审核,质检页面后台跳转接口" /> | |
537 | - <MESSAGE value="修改 入库收货,生成上架任务自动执行定位" /> | |
538 | - <MESSAGE value="修复商品管理、物料类别种bug" /> | |
539 | - <MESSAGE value="修改入库明细添加加载定位规则的错误" /> | |
540 | - <MESSAGE value="添加入库质检行内编辑" /> | |
541 | - <MESSAGE value="行内编辑完成后更新数据库" /> | |
542 | - <MESSAGE value="修改质检登记使用bootstarp boot原生方法初始化" /> | |
543 | - <MESSAGE value="表单头创建时间添加默认创建时间 开始时间默认提前一周,结束时间默认当天" /> | |
544 | - <MESSAGE value="配置中所有页面添加重置按钮" /> | |
545 | - <MESSAGE value="收货添加定位、取消定位、取消组盘按钮" /> | |
546 | - <MESSAGE value="修改入库单数量使用BigDecimal类型,修改入库单添加、修改、物理类型添加和修改页面" /> | |
547 | - <MESSAGE value="修改物料管理中物料类型使用物料类别表,不在使用数据字典" /> | |
548 | - <MESSAGE value="修改波次主表、波次流程头表、波次流程明细页面" /> | |
549 | - <MESSAGE value="修改入库首选项修改添加模块为select" /> | |
550 | - <MESSAGE value="修改任务取消入库组盘状态不回滚,修改任务完成入库单状态不完成" /> | |
551 | - <MESSAGE value="添加自动生成容器编码" /> | |
552 | - <MESSAGE value="修改入库首选项页面,规则查询使用数据字典值,表格值显示修改" /> | |
553 | - <MESSAGE value="入库单添加重置按钮,入库单历史添加上游单号搜索" /> | |
554 | - <MESSAGE value="添加取消入库组盘时容器为临时容器,删除容器" /> | |
555 | - <MESSAGE value="出库完成时删除临时容器" /> | |
556 | - <MESSAGE value="修改容器新增时容器enable状态" /> | |
557 | - <MESSAGE value="修改入库组盘页面中任务类型的显示问题 修改任务完成不修改入库组盘状态的问题" /> | |
558 | - <MESSAGE value="添加根据code查询物料" /> | |
559 | - <MESSAGE value="添加根据容器编码查找容器的方法 配置规则添加自动添加模块类型 添加是否自动生成临时容器" /> | |
560 | - <option name="LAST_COMMIT_MESSAGE" value="添加根据容器编码查找容器的方法 配置规则添加自动添加模块类型 添加是否自动生成临时容器" /> | |
1189 | + <MESSAGE value="添加站台表,入库组盘头表和任务表添加站台,默认为0" /> | |
1190 | + <MESSAGE value="修改任务执行接口" /> | |
1191 | + <MESSAGE value="修改接口实体类" /> | |
1192 | + <MESSAGE value="修改接口实体类 修改仓位分配接口" /> | |
1193 | + <MESSAGE value="修改系统管理参数配置添加和修改页面中的模块和类型" /> | |
1194 | + <MESSAGE value="修改重入和仓位下发接口" /> | |
1195 | + <MESSAGE value="删除质检头表新增按钮" /> | |
1196 | + <MESSAGE value="添加多环境配置文件" /> | |
1197 | + <MESSAGE value="修改收货是是否收完的判断" /> | |
1198 | + <MESSAGE value="添加仓库复制" /> | |
1199 | + <MESSAGE value="修改收货是是否手动指定库位,入库单状态的更新" /> | |
1200 | + <MESSAGE value="修改容器已组盘的提示信息 修改库位生成库位编码使用库位类型编码" /> | |
1201 | + <MESSAGE value="修改仓库复制" /> | |
1202 | + <MESSAGE value="修改返回类型" /> | |
1203 | + <MESSAGE value="修改库位监控" /> | |
1204 | + <MESSAGE value="修改库位监控tips" /> | |
1205 | + <MESSAGE value="修改收发送邮件注释" /> | |
1206 | + <MESSAGE value="添加入库下发接口" /> | |
1207 | + <MESSAGE value="修改入库多仓库报错" /> | |
1208 | + <MESSAGE value="添加物料最大量最小量预警、空库位预警" /> | |
1209 | + <MESSAGE value="添加基础数据接口和入库单下发下发接口" /> | |
1210 | + <MESSAGE value="更新消息确认,发生错误后拒绝消息,消息被队列丢弃" /> | |
1211 | + <MESSAGE value="修改时间搜索无效,添加入库单没有明细不可以提交审核" /> | |
1212 | + <MESSAGE value="修复接口bug,新增库存同步物料同步用户同步接口" /> | |
1213 | + <MESSAGE value="托盘条码打印" /> | |
1214 | + <option name="LAST_COMMIT_MESSAGE" value="托盘条码打印" /> | |
561 | 1215 | </component> |
562 | 1216 | <component name="XDebuggerManager"> |
563 | 1217 | <breakpoint-manager> |
... | ... | @@ -565,42 +1219,94 @@ |
565 | 1219 | <line-breakpoint enabled="true" type="java-line"> |
566 | 1220 | <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/bom/controller/BomHeaderController.java</url> |
567 | 1221 | <line>164</line> |
1222 | + <properties /> | |
568 | 1223 | <option name="timeStamp" value="24" /> |
569 | 1224 | </line-breakpoint> |
570 | 1225 | <line-breakpoint enabled="true" type="java-line"> |
571 | 1226 | <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/controller/MaterialController.java</url> |
572 | - <line>150</line> | |
1227 | + <line>165</line> | |
1228 | + <properties /> | |
573 | 1229 | <option name="timeStamp" value="26" /> |
574 | 1230 | </line-breakpoint> |
575 | 1231 | <line-breakpoint enabled="true" type="java-line"> |
576 | 1232 | <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java</url> |
577 | - <line>174</line> | |
1233 | + <line>179</line> | |
1234 | + <properties /> | |
578 | 1235 | <option name="timeStamp" value="28" /> |
579 | 1236 | </line-breakpoint> |
580 | 1237 | <line-breakpoint enabled="true" type="java-line"> |
1238 | + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/configValue/controller/ConfigValueController.java</url> | |
1239 | + <line>141</line> | |
1240 | + <properties /> | |
1241 | + <option name="timeStamp" value="66" /> | |
1242 | + </line-breakpoint> | |
1243 | + <line-breakpoint enabled="true" type="java-line"> | |
581 | 1244 | <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java</url> |
582 | - <line>631</line> | |
583 | - <option name="timeStamp" value="48" /> | |
1245 | + <line>190</line> | |
1246 | + <properties /> | |
1247 | + <option name="timeStamp" value="87" /> | |
584 | 1248 | </line-breakpoint> |
585 | 1249 | <line-breakpoint enabled="true" type="java-line"> |
586 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerDetail/service/ReceiptContainerDetailServiceImpl.java</url> | |
587 | - <line>56</line> | |
588 | - <option name="timeStamp" value="49" /> | |
1250 | + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/controller/WarecellAllocation.java</url> | |
1251 | + <line>35</line> | |
1252 | + <properties /> | |
1253 | + <option name="timeStamp" value="101" /> | |
589 | 1254 | </line-breakpoint> |
590 | 1255 | <line-breakpoint enabled="true" type="java-line"> |
591 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerDetail/service/ReceiptContainerDetailServiceImpl.java</url> | |
592 | - <line>84</line> | |
593 | - <option name="timeStamp" value="51" /> | |
1256 | + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java</url> | |
1257 | + <line>194</line> | |
1258 | + <properties> | |
1259 | + <option name="lambda-ordinal" value="-1" /> | |
1260 | + </properties> | |
1261 | + <option name="timeStamp" value="112" /> | |
594 | 1262 | </line-breakpoint> |
595 | 1263 | <line-breakpoint enabled="true" type="java-line"> |
596 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/statusFlow/controller/StatusFlowHeaderController.java</url> | |
597 | - <line>86</line> | |
598 | - <option name="timeStamp" value="57" /> | |
1264 | + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/service/LocationServiceImpl.java</url> | |
1265 | + <line>107</line> | |
1266 | + <properties /> | |
1267 | + <option name="timeStamp" value="121" /> | |
599 | 1268 | </line-breakpoint> |
600 | 1269 | <line-breakpoint enabled="true" type="java-line"> |
601 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java</url> | |
602 | - <line>145</line> | |
603 | - <option name="timeStamp" value="62" /> | |
1270 | + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/controller/LocationController.java</url> | |
1271 | + <line>312</line> | |
1272 | + <properties /> | |
1273 | + <option name="timeStamp" value="123" /> | |
1274 | + </line-breakpoint> | |
1275 | + <line-breakpoint enabled="true" type="java-line"> | |
1276 | + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/configWarning/service/ConfigWarningService.java</url> | |
1277 | + <line>110</line> | |
1278 | + <properties /> | |
1279 | + <option name="timeStamp" value="124" /> | |
1280 | + </line-breakpoint> | |
1281 | + <line-breakpoint enabled="true" type="java-line"> | |
1282 | + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/configWarning/service/ConfigWarningService.java</url> | |
1283 | + <line>140</line> | |
1284 | + <properties /> | |
1285 | + <option name="timeStamp" value="125" /> | |
1286 | + </line-breakpoint> | |
1287 | + <line-breakpoint enabled="true" type="java-line"> | |
1288 | + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/configWarning/service/ConfigWarningService.java</url> | |
1289 | + <line>118</line> | |
1290 | + <properties /> | |
1291 | + <option name="timeStamp" value="126" /> | |
1292 | + </line-breakpoint> | |
1293 | + <line-breakpoint enabled="true" type="java-line"> | |
1294 | + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/configWarning/service/ConfigWarningService.java</url> | |
1295 | + <line>109</line> | |
1296 | + <properties /> | |
1297 | + <option name="timeStamp" value="127" /> | |
1298 | + </line-breakpoint> | |
1299 | + <line-breakpoint enabled="true" type="java-line"> | |
1300 | + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java</url> | |
1301 | + <line>709</line> | |
1302 | + <properties /> | |
1303 | + <option name="timeStamp" value="135" /> | |
1304 | + </line-breakpoint> | |
1305 | + <line-breakpoint enabled="true" type="java-line"> | |
1306 | + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java</url> | |
1307 | + <line>198</line> | |
1308 | + <properties /> | |
1309 | + <option name="timeStamp" value="139" /> | |
604 | 1310 | </line-breakpoint> |
605 | 1311 | <line-breakpoint enabled="true" type="javascript"> |
606 | 1312 | <url>file://$PROJECT_DIR$/src/main/resources/templates/check/checkingRegister/checkingRegister.html</url> |
... | ... | @@ -621,8 +1327,431 @@ |
621 | 1327 | </watches-manager> |
622 | 1328 | </component> |
623 | 1329 | <component name="com.intellij.coverage.CoverageDataManagerImpl"> |
624 | - <SUITE FILE_PATH="coverage/huaheng$HuaHengApplication.ic" NAME="HuaHengApplication Coverage Results" MODIFIED="1568251952497" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false"> | |
1330 | + <SUITE FILE_PATH="coverage/huaheng$HuaHengApplication.ic" NAME="HuaHengApplication Coverage Results" MODIFIED="1570677350612" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false"> | |
625 | 1331 | <FILTER>com.huaheng.*</FILTER> |
626 | 1332 | </SUITE> |
627 | 1333 | </component> |
1334 | + <component name="editorHistoryManager"> | |
1335 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/general/domain/ReceiptDomain.java"> | |
1336 | + <provider selected="true" editor-type-id="text-editor"> | |
1337 | + <state relative-caret-position="209"> | |
1338 | + <caret line="16" column="46" selection-start-line="16" selection-start-column="32" selection-end-line="16" selection-end-column="46" /> | |
1339 | + </state> | |
1340 | + </provider> | |
1341 | + </entry> | |
1342 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/general/controller/LoginApi.java"> | |
1343 | + <provider selected="true" editor-type-id="text-editor"> | |
1344 | + <state relative-caret-position="186"> | |
1345 | + <caret line="31" column="32" selection-start-line="31" selection-start-column="24" selection-end-line="31" selection-end-column="32" /> | |
1346 | + </state> | |
1347 | + </provider> | |
1348 | + </entry> | |
1349 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java"> | |
1350 | + <provider selected="true" editor-type-id="text-editor"> | |
1351 | + <state relative-caret-position="240"> | |
1352 | + <caret line="89" column="9" lean-forward="true" selection-start-line="89" selection-start-column="9" selection-end-line="89" selection-end-column="9" /> | |
1353 | + </state> | |
1354 | + </provider> | |
1355 | + </entry> | |
1356 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/general/domain/ShipmentDomain.java"> | |
1357 | + <provider selected="true" editor-type-id="text-editor"> | |
1358 | + <state relative-caret-position="152"> | |
1359 | + <caret line="12" column="48" selection-start-line="12" selection-start-column="33" selection-end-line="12" selection-end-column="48" /> | |
1360 | + </state> | |
1361 | + </provider> | |
1362 | + </entry> | |
1363 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderService.java"> | |
1364 | + <provider selected="true" editor-type-id="text-editor"> | |
1365 | + <state relative-caret-position="126"> | |
1366 | + <caret line="15" column="11" selection-start-line="15" selection-start-column="11" selection-end-line="15" selection-end-column="11" /> | |
1367 | + </state> | |
1368 | + </provider> | |
1369 | + </entry> | |
1370 | + <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/shipment/ShipmentDetailMapper.xml"> | |
1371 | + <provider selected="true" editor-type-id="text-editor"> | |
1372 | + <state relative-caret-position="160"> | |
1373 | + <caret line="140" column="2" selection-start-line="140" selection-start-column="2" selection-end-line="140" selection-end-column="2" /> | |
1374 | + </state> | |
1375 | + </provider> | |
1376 | + </entry> | |
1377 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentDetail/mapper/ShipmentDetailMapper.java"> | |
1378 | + <provider selected="true" editor-type-id="text-editor"> | |
1379 | + <state relative-caret-position="214"> | |
1380 | + <caret line="24" column="8" selection-start-line="24" selection-start-column="8" selection-end-line="24" selection-end-column="8" /> | |
1381 | + </state> | |
1382 | + </provider> | |
1383 | + </entry> | |
1384 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailService.java"> | |
1385 | + <provider selected="true" editor-type-id="text-editor"> | |
1386 | + <state relative-caret-position="290"> | |
1387 | + <caret line="38" column="62" selection-start-line="38" selection-start-column="47" selection-end-line="38" selection-end-column="62" /> | |
1388 | + </state> | |
1389 | + </provider> | |
1390 | + </entry> | |
1391 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java"> | |
1392 | + <provider selected="true" editor-type-id="text-editor"> | |
1393 | + <state relative-caret-position="233"> | |
1394 | + <caret line="304" column="21" lean-forward="true" selection-start-line="304" selection-start-column="21" selection-end-line="304" selection-end-column="21" /> | |
1395 | + </state> | |
1396 | + </provider> | |
1397 | + </entry> | |
1398 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/general/service/ShipmentApiService.java"> | |
1399 | + <provider selected="true" editor-type-id="text-editor"> | |
1400 | + <state relative-caret-position="230"> | |
1401 | + <caret line="136" column="52" selection-start-line="136" selection-start-column="34" selection-end-line="136" selection-end-column="52" /> | |
1402 | + </state> | |
1403 | + </provider> | |
1404 | + </entry> | |
1405 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/general/controller/ShipmentApi.java"> | |
1406 | + <provider selected="true" editor-type-id="text-editor"> | |
1407 | + <state relative-caret-position="266"> | |
1408 | + <caret line="31" column="55" lean-forward="true" selection-start-line="31" selection-start-column="55" selection-end-line="31" selection-end-column="55" /> | |
1409 | + </state> | |
1410 | + </provider> | |
1411 | + </entry> | |
1412 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/general/service/ReceiptApiService.java"> | |
1413 | + <provider selected="true" editor-type-id="text-editor"> | |
1414 | + <state relative-caret-position="236"> | |
1415 | + <caret line="111" column="56" selection-start-line="111" selection-start-column="43" selection-end-line="111" selection-end-column="56" /> | |
1416 | + </state> | |
1417 | + </provider> | |
1418 | + </entry> | |
1419 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/general/controller/ReceiptApi.java"> | |
1420 | + <provider selected="true" editor-type-id="text-editor"> | |
1421 | + <state relative-caret-position="247"> | |
1422 | + <caret line="32" column="52" selection-start-line="32" selection-start-column="52" selection-end-line="32" selection-end-column="52" /> | |
1423 | + </state> | |
1424 | + </provider> | |
1425 | + </entry> | |
1426 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/system/user/domain/User.java"> | |
1427 | + <provider selected="true" editor-type-id="text-editor"> | |
1428 | + <state relative-caret-position="209"> | |
1429 | + <caret line="23" column="13" selection-start-line="23" selection-start-column="13" selection-end-line="23" selection-end-column="13" /> | |
1430 | + </state> | |
1431 | + </provider> | |
1432 | + </entry> | |
1433 | + <entry file="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-extension/3.1.2/mybatis-plus-extension-3.1.2.jar!/com/baomidou/mybatisplus/extension/service/impl/ServiceImpl.class"> | |
1434 | + <provider selected="true" editor-type-id="text-editor"> | |
1435 | + <state relative-caret-position="114"> | |
1436 | + <caret line="36" column="13" selection-start-line="36" selection-start-column="13" selection-end-line="36" selection-end-column="13" /> | |
1437 | + </state> | |
1438 | + </provider> | |
1439 | + </entry> | |
1440 | + <entry file="file://$PROJECT_DIR$/src/main/resources/mybatis/system/UserMapper.xml"> | |
1441 | + <provider selected="true" editor-type-id="text-editor"> | |
1442 | + <state relative-caret-position="149"> | |
1443 | + <caret line="43" column="4" selection-start-line="43" selection-start-column="4" selection-end-line="43" selection-end-column="4" /> | |
1444 | + </state> | |
1445 | + </provider> | |
1446 | + </entry> | |
1447 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/system/user/service/IUserService.java"> | |
1448 | + <provider selected="true" editor-type-id="text-editor"> | |
1449 | + <state relative-caret-position="171"> | |
1450 | + <caret line="18" column="29" lean-forward="true" selection-start-line="18" selection-start-column="29" selection-end-line="18" selection-end-column="29" /> | |
1451 | + </state> | |
1452 | + </provider> | |
1453 | + </entry> | |
1454 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/service/MaterialService.java"> | |
1455 | + <provider selected="true" editor-type-id="text-editor"> | |
1456 | + <state relative-caret-position="-152"> | |
1457 | + <caret line="8" column="60" lean-forward="true" selection-start-line="8" selection-start-column="60" selection-end-line="8" selection-end-column="60" /> | |
1458 | + </state> | |
1459 | + </provider> | |
1460 | + </entry> | |
1461 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/service/MaterialServiceImpl.java"> | |
1462 | + <provider selected="true" editor-type-id="text-editor"> | |
1463 | + <state relative-caret-position="95"> | |
1464 | + <caret line="27" column="89" selection-start-line="27" selection-start-column="32" selection-end-line="27" selection-end-column="89" /> | |
1465 | + </state> | |
1466 | + </provider> | |
1467 | + </entry> | |
1468 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/system/user/controller/UserController.java"> | |
1469 | + <provider selected="true" editor-type-id="text-editor"> | |
1470 | + <state relative-caret-position="206"> | |
1471 | + <caret line="71" column="46" selection-start-line="71" selection-start-column="46" selection-end-line="71" selection-end-column="46" /> | |
1472 | + </state> | |
1473 | + </provider> | |
1474 | + </entry> | |
1475 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/system/user/mapper/UserMapper.java"> | |
1476 | + <provider selected="true" editor-type-id="text-editor"> | |
1477 | + <state relative-caret-position="149"> | |
1478 | + <caret line="23" column="22" selection-start-line="23" selection-start-column="22" selection-end-line="23" selection-end-column="22" /> | |
1479 | + </state> | |
1480 | + </provider> | |
1481 | + </entry> | |
1482 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/system/user/service/UserServiceImpl.java"> | |
1483 | + <provider selected="true" editor-type-id="text-editor"> | |
1484 | + <state relative-caret-position="19"> | |
1485 | + <caret line="42" column="28" lean-forward="true" selection-start-line="42" selection-start-column="28" selection-end-line="42" selection-end-column="28" /> | |
1486 | + <folding> | |
1487 | + <element signature="e#5266#5267#0" expanded="true" /> | |
1488 | + <element signature="e#5320#5321#0" expanded="true" /> | |
1489 | + <element signature="e#5486#5487#0" expanded="true" /> | |
1490 | + <element signature="e#5551#5552#0" expanded="true" /> | |
1491 | + <element signature="e#5726#5727#0" expanded="true" /> | |
1492 | + <element signature="e#5796#5797#0" expanded="true" /> | |
1493 | + <element signature="e#5950#5951#0" expanded="true" /> | |
1494 | + <element signature="e#6008#6009#0" expanded="true" /> | |
1495 | + <element signature="e#6166#6167#0" expanded="true" /> | |
1496 | + <element signature="e#6222#6223#0" expanded="true" /> | |
1497 | + <element signature="e#8470#8471#0" expanded="true" /> | |
1498 | + <element signature="e#8520#8521#0" expanded="true" /> | |
1499 | + <element signature="e#17198#17199#0" expanded="true" /> | |
1500 | + <element signature="e#17266#17267#0" expanded="true" /> | |
1501 | + </folding> | |
1502 | + </state> | |
1503 | + </provider> | |
1504 | + </entry> | |
1505 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/general/domain/Receipt.java"> | |
1506 | + <provider selected="true" editor-type-id="text-editor"> | |
1507 | + <state relative-caret-position="171"> | |
1508 | + <caret line="13" column="13" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" /> | |
1509 | + </state> | |
1510 | + </provider> | |
1511 | + </entry> | |
1512 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/general/controller/BasicDataApi.java"> | |
1513 | + <provider selected="true" editor-type-id="text-editor"> | |
1514 | + <state relative-caret-position="2907"> | |
1515 | + <caret line="170" column="1" selection-start-line="170" selection-start-column="1" selection-end-line="170" selection-end-column="1" /> | |
1516 | + </state> | |
1517 | + </provider> | |
1518 | + </entry> | |
1519 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/general/domain/InventoryDomain.java"> | |
1520 | + <provider selected="true" editor-type-id="text-editor"> | |
1521 | + <state relative-caret-position="114"> | |
1522 | + <caret line="13" column="57" selection-start-line="13" selection-start-column="57" selection-end-line="13" selection-end-column="57" /> | |
1523 | + </state> | |
1524 | + </provider> | |
1525 | + </entry> | |
1526 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/api/general/service/BasicDataApiService.java"> | |
1527 | + <provider selected="true" editor-type-id="text-editor"> | |
1528 | + <state relative-caret-position="105"> | |
1529 | + <caret line="657" column="76" selection-start-line="657" selection-start-column="76" selection-end-line="657" selection-end-column="76" /> | |
1530 | + </state> | |
1531 | + </provider> | |
1532 | + </entry> | |
1533 | + <entry file="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-extension/3.1.2/mybatis-plus-extension-3.1.2.jar!/com/baomidou/mybatisplus/extension/service/IService.class"> | |
1534 | + <provider selected="true" editor-type-id="text-editor"> | |
1535 | + <state relative-caret-position="171"> | |
1536 | + <caret line="70" column="6" selection-start-line="70" selection-start-column="6" selection-end-line="70" selection-end-column="6" /> | |
1537 | + </state> | |
1538 | + </provider> | |
1539 | + </entry> | |
1540 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/service/ContainerService.java"> | |
1541 | + <provider selected="true" editor-type-id="text-editor"> | |
1542 | + <state relative-caret-position="76"> | |
1543 | + <caret line="9" column="17" selection-start-line="9" selection-start-column="17" selection-end-line="9" selection-end-column="17" /> | |
1544 | + </state> | |
1545 | + </provider> | |
1546 | + </entry> | |
1547 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/service/InventoryTransactionService.java"> | |
1548 | + <provider selected="true" editor-type-id="text-editor"> | |
1549 | + <state relative-caret-position="57"> | |
1550 | + <caret line="4" column="17" selection-start-line="4" selection-start-column="17" selection-end-line="4" selection-end-column="17" /> | |
1551 | + </state> | |
1552 | + </provider> | |
1553 | + </entry> | |
1554 | + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryTransaction/inventoryTransaction.html"> | |
1555 | + <provider selected="true" editor-type-id="text-editor"> | |
1556 | + <state relative-caret-position="391"> | |
1557 | + <caret line="322" column="10" lean-forward="true" selection-start-line="310" selection-start-column="7" selection-end-line="322" selection-end-column="10" /> | |
1558 | + </state> | |
1559 | + </provider> | |
1560 | + </entry> | |
1561 | + <entry file="file://$APPLICATION_HOME_DIR$/plugins/JavaScriptLanguage/jsLanguageServicesImpl/external/lib.es5.d.ts"> | |
1562 | + <provider selected="true" editor-type-id="text-editor"> | |
1563 | + <state relative-caret-position="140"> | |
1564 | + <caret line="472" column="4" selection-start-line="472" selection-start-column="4" selection-end-line="472" selection-end-column="4" /> | |
1565 | + </state> | |
1566 | + </provider> | |
1567 | + </entry> | |
1568 | + <entry file="file://$PROJECT_DIR$/src/main/resources/static/js/plugins/metisMenu/jquery.metisMenu.js"> | |
1569 | + <provider selected="true" editor-type-id="text-editor"> | |
1570 | + <state relative-caret-position="128"> | |
1571 | + <caret line="101" column="8" selection-start-line="101" selection-start-column="8" selection-end-line="101" selection-end-column="8" /> | |
1572 | + </state> | |
1573 | + </provider> | |
1574 | + </entry> | |
1575 | + <entry file="file://$APPLICATION_HOME_DIR$/plugins/JavaScriptLanguage/jsLanguageServicesImpl/external/lib.dom.d.ts"> | |
1576 | + <provider selected="true" editor-type-id="text-editor"> | |
1577 | + <state relative-caret-position="128"> | |
1578 | + <caret line="10712" column="13" selection-start-line="10712" selection-start-column="13" selection-end-line="10712" selection-end-column="13" /> | |
1579 | + </state> | |
1580 | + </provider> | |
1581 | + </entry> | |
1582 | + <entry file="file://$PROJECT_DIR$/src/main/resources/static/js/qrcode/qrcode.min.js"> | |
1583 | + <provider selected="true" editor-type-id="text-editor"> | |
1584 | + <state> | |
1585 | + <caret column="4" selection-start-column="4" selection-end-column="4" /> | |
1586 | + </state> | |
1587 | + </provider> | |
1588 | + </entry> | |
1589 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/controller/InventoryTransactionController.java"> | |
1590 | + <provider selected="true" editor-type-id="text-editor"> | |
1591 | + <state relative-caret-position="-872"> | |
1592 | + <caret line="41" column="33" lean-forward="true" selection-start-line="41" selection-start-column="33" selection-end-line="41" selection-end-column="33" /> | |
1593 | + </state> | |
1594 | + </provider> | |
1595 | + </entry> | |
1596 | + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/receipt/receiptHeader/receiptHeader.html"> | |
1597 | + <provider selected="true" editor-type-id="text-editor"> | |
1598 | + <state relative-caret-position="152"> | |
1599 | + <caret line="675" column="43" lean-forward="true" selection-start-line="675" selection-start-column="43" selection-end-line="675" selection-end-column="43" /> | |
1600 | + </state> | |
1601 | + </provider> | |
1602 | + </entry> | |
1603 | + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/receipt/receiptHeader/add.html"> | |
1604 | + <provider selected="true" editor-type-id="text-editor"> | |
1605 | + <state relative-caret-position="-962" /> | |
1606 | + </provider> | |
1607 | + </entry> | |
1608 | + <entry file="file://$PROJECT_DIR$/src/main/resources/static/js/echarts/echarts.js"> | |
1609 | + <provider selected="true" editor-type-id="text-editor"> | |
1610 | + <state relative-caret-position="19"> | |
1611 | + <caret line="30207" selection-start-line="30207" selection-end-line="30207" /> | |
1612 | + </state> | |
1613 | + </provider> | |
1614 | + </entry> | |
1615 | + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/receipt/receiptHeader/report.html"> | |
1616 | + <provider selected="true" editor-type-id="text-editor"> | |
1617 | + <state relative-caret-position="225"> | |
1618 | + <caret line="70" column="4" lean-forward="true" selection-start-line="70" selection-start-column="4" selection-end-line="70" selection-end-column="22" /> | |
1619 | + <folding> | |
1620 | + <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" /> | |
1621 | + </folding> | |
1622 | + </state> | |
1623 | + </provider> | |
1624 | + </entry> | |
1625 | + <entry file="file://$USER_HOME$/Desktop/长沙华恒企网2.0_new/答题HTML/答题HTML/answer.html"> | |
1626 | + <provider selected="true" editor-type-id="text-editor"> | |
1627 | + <state relative-caret-position="-171" /> | |
1628 | + </provider> | |
1629 | + </entry> | |
1630 | + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/config/container/container.html"> | |
1631 | + <provider selected="true" editor-type-id="text-editor"> | |
1632 | + <state relative-caret-position="1292"> | |
1633 | + <caret line="68" column="44" selection-start-line="68" selection-start-column="35" selection-end-line="68" selection-end-column="44" /> | |
1634 | + </state> | |
1635 | + </provider> | |
1636 | + </entry> | |
1637 | + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/container/controller/ContainerController.java"> | |
1638 | + <provider selected="true" editor-type-id="text-editor"> | |
1639 | + <state relative-caret-position="228"> | |
1640 | + <caret line="41" column="29" selection-start-line="41" selection-start-column="29" selection-end-line="41" selection-end-column="38" /> | |
1641 | + </state> | |
1642 | + </provider> | |
1643 | + </entry> | |
1644 | + <entry file="file://$PROJECT_DIR$/src/main/resources/static/js/jquery.jqprint-0.3.js"> | |
1645 | + <provider selected="true" editor-type-id="text-editor"> | |
1646 | + <state relative-caret-position="-316"> | |
1647 | + <caret line="43" column="118" selection-start-line="43" selection-start-column="113" selection-end-line="43" selection-end-column="118" /> | |
1648 | + </state> | |
1649 | + </provider> | |
1650 | + </entry> | |
1651 | + <entry file="file://$APPLICATION_HOME_DIR$/plugins/JavaScriptLanguage/jsLanguageServicesImpl/external/browser.d.ts"> | |
1652 | + <provider selected="true" editor-type-id="text-editor"> | |
1653 | + <state relative-caret-position="155"> | |
1654 | + <caret line="46" column="4" selection-start-line="46" selection-start-column="4" selection-end-line="46" selection-end-column="4" /> | |
1655 | + </state> | |
1656 | + </provider> | |
1657 | + </entry> | |
1658 | + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/inventory/inventoryTransaction/report.html"> | |
1659 | + <provider selected="true" editor-type-id="text-editor"> | |
1660 | + <state relative-caret-position="147"> | |
1661 | + <caret line="98" column="13" selection-start-line="98" selection-start-column="13" selection-end-line="98" selection-end-column="13" /> | |
1662 | + <folding> | |
1663 | + <element signature="n#style#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | |
1664 | + <element signature="n#style#0;n#span#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | |
1665 | + <element signature="n#style#0;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" /> | |
1666 | + <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" /> | |
1667 | + </folding> | |
1668 | + </state> | |
1669 | + </provider> | |
1670 | + </entry> | |
1671 | + <entry file="file://$USER_HOME$/Desktop/boot/boot/打印二维码 - 多个组2.html"> | |
1672 | + <provider selected="true" editor-type-id="text-editor"> | |
1673 | + <state relative-caret-position="241"> | |
1674 | + <caret line="47" column="36" lean-forward="true" selection-start-line="47" selection-start-column="36" selection-end-line="47" selection-end-column="36" /> | |
1675 | + <folding> | |
1676 | + <element signature="n#style#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | |
1677 | + <element signature="n#style#0;n#div#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | |
1678 | + <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" /> | |
1679 | + <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" /> | |
1680 | + <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" /> | |
1681 | + <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" /> | |
1682 | + <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" /> | |
1683 | + <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" /> | |
1684 | + <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" /> | |
1685 | + <element signature="e#2973#2979#0" expanded="true" /> | |
1686 | + <element signature="e#2979#2985#0" expanded="true" /> | |
1687 | + <element signature="e#2985#2991#0" expanded="true" /> | |
1688 | + <element signature="e#2991#2997#0" expanded="true" /> | |
1689 | + <element signature="e#2997#3003#0" expanded="true" /> | |
1690 | + <element signature="e#3003#3009#0" expanded="true" /> | |
1691 | + <element signature="e#3009#3015#0" expanded="true" /> | |
1692 | + <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" /> | |
1693 | + <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" /> | |
1694 | + <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" /> | |
1695 | + <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" /> | |
1696 | + <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" /> | |
1697 | + <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" /> | |
1698 | + <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" /> | |
1699 | + <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" /> | |
1700 | + <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" /> | |
1701 | + <element signature="e#3995#4001#0" expanded="true" /> | |
1702 | + <element signature="e#4001#4007#0" expanded="true" /> | |
1703 | + <element signature="e#4007#4013#0" expanded="true" /> | |
1704 | + <element signature="e#4013#4019#0" expanded="true" /> | |
1705 | + <element signature="e#4019#4025#0" expanded="true" /> | |
1706 | + <element signature="e#4025#4031#0" expanded="true" /> | |
1707 | + <element signature="e#4031#4037#0" expanded="true" /> | |
1708 | + <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" /> | |
1709 | + <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" /> | |
1710 | + </folding> | |
1711 | + </state> | |
1712 | + </provider> | |
1713 | + </entry> | |
1714 | + <entry file="jar://$MAVEN_REPOSITORY$/com/alibaba/druid/1.1.18/druid-1.1.18.jar!/support/http/resources/css/bootstrap.min.css"> | |
1715 | + <provider selected="true" editor-type-id="text-editor"> | |
1716 | + <state relative-caret-position="152"> | |
1717 | + <caret line="8" column="25402" selection-start-line="8" selection-start-column="25402" selection-end-line="8" selection-end-column="25402" /> | |
1718 | + </state> | |
1719 | + </provider> | |
1720 | + </entry> | |
1721 | + <entry file="file://$PROJECT_DIR$/src/main/resources/static/css/main/style.min862f.css"> | |
1722 | + <provider selected="true" editor-type-id="text-editor"> | |
1723 | + <state> | |
1724 | + <caret column="49663" selection-start-column="49663" selection-end-column="49663" /> | |
1725 | + </state> | |
1726 | + </provider> | |
1727 | + </entry> | |
1728 | + <entry file="file://$PROJECT_DIR$/src/main/resources/static/css/bootstrap.min.css"> | |
1729 | + <provider selected="true" editor-type-id="text-editor"> | |
1730 | + <state relative-caret-position="127"> | |
1731 | + <caret line="2721" column="1" selection-start-line="2721" selection-start-column="1" selection-end-line="2721" selection-end-column="1" /> | |
1732 | + </state> | |
1733 | + </provider> | |
1734 | + </entry> | |
1735 | + <entry file="file://$PROJECT_DIR$/src/main/resources/static/css/style.css"> | |
1736 | + <provider selected="true" editor-type-id="text-editor"> | |
1737 | + <state relative-caret-position="241"> | |
1738 | + <caret line="3360" column="17" lean-forward="true" selection-start-line="3360" selection-start-column="17" selection-end-line="3360" selection-end-column="17" /> | |
1739 | + </state> | |
1740 | + </provider> | |
1741 | + </entry> | |
1742 | + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/config/container/print.html"> | |
1743 | + <provider selected="true" editor-type-id="text-editor"> | |
1744 | + <state relative-caret-position="150"> | |
1745 | + <caret line="21" column="28" lean-forward="true" selection-start-line="21" selection-start-column="28" selection-end-line="21" selection-end-column="28" /> | |
1746 | + <folding> | |
1747 | + <element signature="n#style#0;n#div#0;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" /> | |
1748 | + <element signature="n#style#0;n#span#0;n#div#0;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" /> | |
1749 | + <element signature="n#style#0;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | |
1750 | + <element signature="n#style#0;n#div#0;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | |
1751 | + <element signature="n#style#0;n#table#0;n#div#0;n#div#0;n#div#1;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" /> | |
1752 | + </folding> | |
1753 | + </state> | |
1754 | + </provider> | |
1755 | + </entry> | |
1756 | + </component> | |
628 | 1757 | </project> |
629 | 1758 | \ No newline at end of file |
... | ... |
pom.xml
... | ... | @@ -249,6 +249,43 @@ |
249 | 249 | <version>3.17</version> |
250 | 250 | </dependency> |
251 | 251 | |
252 | + <!--jasperreports--> | |
253 | + <dependency> | |
254 | + <groupId>net.sf.jasperreports</groupId> | |
255 | + <artifactId>jasperreports</artifactId> | |
256 | + <version>6.10.0</version> | |
257 | + </dependency> | |
258 | + <dependency> | |
259 | + <groupId>net.sf.jasperreports</groupId> | |
260 | + <artifactId>jasperreports-fonts</artifactId> | |
261 | + <version>6.10.0</version> | |
262 | + </dependency> | |
263 | + <dependency> | |
264 | + <groupId>com.itextpdf</groupId> | |
265 | + <artifactId>itextpdf</artifactId> | |
266 | + <version>5.5.7</version> | |
267 | + </dependency> | |
268 | + <dependency> | |
269 | + <groupId>com.itextpdf</groupId> | |
270 | + <artifactId>itext-pdfa</artifactId> | |
271 | + <version>5.5.7</version> | |
272 | + </dependency> | |
273 | + <dependency> | |
274 | + <groupId>com.itextpdf</groupId> | |
275 | + <artifactId>itext-asian</artifactId> | |
276 | + <version>5.2.0</version> | |
277 | + </dependency> | |
278 | + <dependency> | |
279 | + <groupId>cn.lesper</groupId> | |
280 | + <artifactId>iTextAsian</artifactId> | |
281 | + <version>3.0</version> | |
282 | + </dependency> | |
283 | + <dependency> | |
284 | + <groupId>org.codehaus.groovy</groupId> | |
285 | + <artifactId>groovy-all</artifactId> | |
286 | + <version>2.4.11</version> | |
287 | + </dependency> | |
288 | + | |
252 | 289 | <!--activiti工作流--> |
253 | 290 | <!--<dependency>--> |
254 | 291 | <!--<groupId>org.activiti</groupId>--> |
... | ... |
src/main/java/com/huaheng/api/acs/controller/StateInfoUp.java
0 → 100644
1 | +package com.huaheng.api.acs.controller; | |
2 | + | |
3 | +import com.huaheng.api.acs.domain.StateInfoUploadModel; | |
4 | +import com.huaheng.api.acs.service.AcsService; | |
5 | +import com.huaheng.framework.aspectj.lang.annotation.Log; | |
6 | +import com.huaheng.framework.aspectj.lang.constant.BusinessType; | |
7 | +import com.huaheng.framework.web.controller.BaseController; | |
8 | +import com.huaheng.framework.web.domain.AjaxResult; | |
9 | +import io.swagger.annotations.Api; | |
10 | +import io.swagger.annotations.ApiOperation; | |
11 | +import org.springframework.web.bind.annotation.*; | |
12 | + | |
13 | +import javax.annotation.Resource; | |
14 | + | |
15 | + | |
16 | +@RestController | |
17 | +@RequestMapping("/api/ACS/v1") | |
18 | +@Api(tags = {"ACS"}, description = "登陆接口") | |
19 | +public class StateInfoUp extends BaseController { | |
20 | + @Resource | |
21 | + private AcsService acsService; | |
22 | + | |
23 | + /** | |
24 | + * AGV 信息上传 | |
25 | + */ | |
26 | +// @RequiresPermissions("api:acs:StateInfoUpload") | |
27 | + @Log(title = "AGV 信息上传", action = BusinessType.INSERT) | |
28 | + @PostMapping("/StateInfoUpload") | |
29 | + @ApiOperation("AGV 信息上传接口") | |
30 | + @ResponseBody | |
31 | + public AjaxResult StateInfoUpload(@RequestBody StateInfoUploadModel model) | |
32 | + { | |
33 | + return acsService.StateInfoUpload(model); | |
34 | + } | |
35 | + | |
36 | +} | |
... | ... |
src/main/java/com/huaheng/api/acs/controller/TaskConfirm.java
0 → 100644
1 | +package com.huaheng.api.acs.controller; | |
2 | + | |
3 | +import com.huaheng.api.acs.domain.AgvTask; | |
4 | +import com.huaheng.api.acs.service.AcsService; | |
5 | +import com.huaheng.framework.aspectj.lang.annotation.Log; | |
6 | +import com.huaheng.framework.aspectj.lang.constant.BusinessType; | |
7 | +import com.huaheng.framework.web.controller.BaseController; | |
8 | +import com.huaheng.framework.web.domain.AjaxResult; | |
9 | +import io.swagger.annotations.Api; | |
10 | +import io.swagger.annotations.ApiOperation; | |
11 | +import org.springframework.web.bind.annotation.*; | |
12 | + | |
13 | +import javax.annotation.Resource; | |
14 | + | |
15 | + | |
16 | +@RestController | |
17 | +@RequestMapping("/api/ACS/v1") | |
18 | +@Api(tags = {"ACS"}, description = "登陆接口") | |
19 | +public class TaskConfirm extends BaseController { | |
20 | + @Resource | |
21 | + private AcsService acsService; | |
22 | + | |
23 | + /** | |
24 | + * AGV 任务回传 | |
25 | + */ | |
26 | +// @RequiresPermissions("api:acs:TaskConfirm") | |
27 | + @Log(title = "AGV 任务回传", action = BusinessType.UPDATE) | |
28 | + @PostMapping("/TaskConfirm") | |
29 | + @ApiOperation("AGV 任务回传接口") | |
30 | + @ResponseBody | |
31 | + public AjaxResult TaskConfirm(@RequestBody AgvTask model) | |
32 | + { | |
33 | + return acsService.TaskConfirm(model); | |
34 | + } | |
35 | + | |
36 | + | |
37 | +} | |
... | ... |
src/main/java/com/huaheng/api/acs/domain/AgvTask.java
0 → 100644
1 | +package com.huaheng.api.acs.domain; | |
2 | + | |
3 | +import com.huaheng.framework.web.domain.BaseEntity; | |
4 | + | |
5 | +import java.util.Date; | |
6 | +import java.util.List; | |
7 | + | |
8 | +/** | |
9 | + * AGV任务实体 | |
10 | + * | |
11 | + */ | |
12 | +public class AgvTask extends BaseEntity { | |
13 | + | |
14 | + | |
15 | + private Integer id; | |
16 | + //交互标识 | |
17 | + private String interactionId; | |
18 | + //任务头标识 | |
19 | + private Integer taskHeaderId; | |
20 | + //任务子标识 | |
21 | + private Integer taskDetailId; | |
22 | + //任务类型 | |
23 | + private String taskType; | |
24 | + //货架编码 | |
25 | + private String shelfNo; | |
26 | + //站台编码 | |
27 | + private String station; | |
28 | + //源位置编码 | |
29 | + private String fromLocationNo; | |
30 | + //目的位置编码 | |
31 | + private String toLocationNo; | |
32 | + //方向 | |
33 | + private String orientation; | |
34 | + //平台 | |
35 | + private String platform; | |
36 | + //小车编号 | |
37 | + private String carNo; | |
38 | + //状态 | |
39 | + private String state; | |
40 | + //优先级 | |
41 | + private Integer status; | |
42 | + //仓库ID | |
43 | + private Integer warehouseId; | |
44 | + //仓库编码 | |
45 | + private String warehouseCode; | |
46 | + //货主ID | |
47 | + private Integer companyId; | |
48 | + //货主编码 | |
49 | + private String companyCode; | |
50 | + //货主ID list | |
51 | + private List<Integer> companyIdList; | |
52 | + //货主list | |
53 | + private List<String> companyCodeList; | |
54 | + | |
55 | + private Date date; | |
56 | + | |
57 | + public Date getDate() { | |
58 | + return date; | |
59 | + } | |
60 | + | |
61 | + public void setDate(Date date) { | |
62 | + this.date = date; | |
63 | + } | |
64 | + | |
65 | + public List<Integer> getCompanyIdList() { | |
66 | + return companyIdList; | |
67 | + } | |
68 | + | |
69 | + public void setCompanyIdList(List<Integer> companyIdList) { | |
70 | + this.companyIdList = companyIdList; | |
71 | + } | |
72 | + | |
73 | + public Integer getWarehouseId() { | |
74 | + return warehouseId; | |
75 | + } | |
76 | + | |
77 | + public void setWarehouseId(Integer warehouseId) { | |
78 | + this.warehouseId = warehouseId; | |
79 | + } | |
80 | + | |
81 | + public String getWarehouseCode() { | |
82 | + return warehouseCode; | |
83 | + } | |
84 | + | |
85 | + public void setWarehouseCode(String warehouseCode) { | |
86 | + this.warehouseCode = warehouseCode; | |
87 | + } | |
88 | + | |
89 | + public Integer getCompanyId() { | |
90 | + return companyId; | |
91 | + } | |
92 | + | |
93 | + public void setCompanyId(Integer companyId) { | |
94 | + this.companyId = companyId; | |
95 | + } | |
96 | + | |
97 | + public String getCompanyCode() { | |
98 | + return companyCode; | |
99 | + } | |
100 | + | |
101 | + public void setCompanyCode(String companyCode) { | |
102 | + this.companyCode = companyCode; | |
103 | + } | |
104 | + | |
105 | + public List<String> getCompanyCodeList() { | |
106 | + return companyCodeList; | |
107 | + } | |
108 | + | |
109 | + public void setCompanyCodeList(List<String> companyCodeList) { | |
110 | + this.companyCodeList = companyCodeList; | |
111 | + } | |
112 | + | |
113 | + public Integer getId() { | |
114 | + return id; | |
115 | + } | |
116 | + | |
117 | + public void setId(Integer id) { | |
118 | + this.id = id; | |
119 | + } | |
120 | + | |
121 | + public String getInteractionId() { | |
122 | + return interactionId; | |
123 | + } | |
124 | + | |
125 | + public void setInteractionId(String interactionId) { | |
126 | + this.interactionId = interactionId; | |
127 | + } | |
128 | + | |
129 | + public Integer getTaskHeaderId() { | |
130 | + return taskHeaderId; | |
131 | + } | |
132 | + | |
133 | + public void setTaskHeaderId(Integer taskHeaderId) { | |
134 | + this.taskHeaderId = taskHeaderId; | |
135 | + } | |
136 | + | |
137 | + public Integer getTaskDetailId() { | |
138 | + return taskDetailId; | |
139 | + } | |
140 | + | |
141 | + public void setTaskDetailId(Integer taskDetailId) { | |
142 | + this.taskDetailId = taskDetailId; | |
143 | + } | |
144 | + | |
145 | + public String getTaskType() { | |
146 | + return taskType; | |
147 | + } | |
148 | + | |
149 | + public void setTaskType(String taskType) { | |
150 | + this.taskType = taskType; | |
151 | + } | |
152 | + | |
153 | + public String getShelfNo() { | |
154 | + return shelfNo; | |
155 | + } | |
156 | + | |
157 | + public void setShelfNo(String shelfNo) { | |
158 | + this.shelfNo = shelfNo; | |
159 | + } | |
160 | + | |
161 | + public String getStation() { | |
162 | + return station; | |
163 | + } | |
164 | + | |
165 | + public void setStation(String station) { | |
166 | + this.station = station; | |
167 | + } | |
168 | + | |
169 | + public String getFromLocationNo() { | |
170 | + return fromLocationNo; | |
171 | + } | |
172 | + | |
173 | + public void setFromLocationNo(String fromLocationNo) { | |
174 | + this.fromLocationNo = fromLocationNo; | |
175 | + } | |
176 | + | |
177 | + public String getToLocationNo() { | |
178 | + return toLocationNo; | |
179 | + } | |
180 | + | |
181 | + public void setToLocationNo(String toLocationNo) { | |
182 | + this.toLocationNo = toLocationNo; | |
183 | + } | |
184 | + | |
185 | + public String getOrientation() { | |
186 | + return orientation; | |
187 | + } | |
188 | + | |
189 | + public void setOrientation(String orientation) { | |
190 | + this.orientation = orientation; | |
191 | + } | |
192 | + | |
193 | + public String getPlatform() { | |
194 | + return platform; | |
195 | + } | |
196 | + | |
197 | + public void setPlatform(String platform) { | |
198 | + this.platform = platform; | |
199 | + } | |
200 | + | |
201 | + public String getCarNo() { | |
202 | + return carNo; | |
203 | + } | |
204 | + | |
205 | + public void setCarNo(String carNo) { | |
206 | + this.carNo = carNo; | |
207 | + } | |
208 | + | |
209 | + public String getState() { | |
210 | + return state; | |
211 | + } | |
212 | + | |
213 | + public void setState(String state) { | |
214 | + this.state = state; | |
215 | + } | |
216 | + | |
217 | + public Integer getStatus() { | |
218 | + return status; | |
219 | + } | |
220 | + | |
221 | + public void setStatus(Integer status) { | |
222 | + this.status = status; | |
223 | + } | |
224 | + | |
225 | + @Override | |
226 | + public String toString() { | |
227 | + return "AgvTask{" + | |
228 | + "id=" + id + | |
229 | + ", interactionId='" + interactionId + '\'' + | |
230 | + ", taskHeaderId=" + taskHeaderId + | |
231 | + ", taskDetailId=" + taskDetailId + | |
232 | + ", taskType='" + taskType + '\'' + | |
233 | + ", shelfNo='" + shelfNo + '\'' + | |
234 | + ", station='" + station + '\'' + | |
235 | + ", fromLocationNo='" + fromLocationNo + '\'' + | |
236 | + ", toLocationNo='" + toLocationNo + '\'' + | |
237 | + ", orientation='" + orientation + '\'' + | |
238 | + ", platform='" + platform + '\'' + | |
239 | + ", carNo='" + carNo + '\'' + | |
240 | + ", state='" + state + '\'' + | |
241 | + '}'; | |
242 | + } | |
243 | +} | |
... | ... |
src/main/java/com/huaheng/api/acs/domain/StateInfoUploadModel.java
0 → 100644
1 | +package com.huaheng.api.acs.domain; | |
2 | + | |
3 | +import java.util.Date; | |
4 | + | |
5 | +/** | |
6 | + * 小车信息实体 | |
7 | + * | |
8 | + */ | |
9 | +public class StateInfoUploadModel { | |
10 | + | |
11 | + private String carNo; // 小车编号,string(50),唯一 ,必填 | |
12 | + private String interactionId; // 交互标识,int,默认 0,必填" | |
13 | + private String taskType; // 任务类型,string (50),putway 上架 pick 拣货,必填 | |
14 | + private String shelfNo; // 货架编码,string (50),默认 0,必填 | |
15 | + private String station; // 站台编码,string (50),默认 0,必填 | |
16 | + private String currentLocationNo; // 当前位置编码,string (50),默认 0 必填 | |
17 | + private String fromLocationNo; // 源位置编码,string (50),默认 0 必填 | |
18 | + private String toLocationNo; // 目的位置编码,string (50),默认 0 必填 | |
19 | + private String orientation; // 方向,string (50),N,S,E,W,必填 | |
20 | + private Integer percentCapacity; // 电量,int【0-100】,必填 | |
21 | + private Integer exceptionFlag; // 异常标志 0 正常 1 异常,int,默认 0 必填 | |
22 | + private String state; // 状态,string (50),0 空闲 1 预定 2 任务中 -1 充电,必填 | |
23 | + private String exceptionInfo; // 异常信息 string(200) | |
24 | + //仓库ID | |
25 | + private Integer warehouseId; | |
26 | + //仓库编码 | |
27 | + private String warehouseCode; | |
28 | + | |
29 | + private Date date; | |
30 | + | |
31 | + public Date getDate() { | |
32 | + return date; | |
33 | + } | |
34 | + | |
35 | + public void setDate(Date date) { | |
36 | + this.date = date; | |
37 | + } | |
38 | + | |
39 | + public Integer getWarehouseId() { | |
40 | + return warehouseId; | |
41 | + } | |
42 | + | |
43 | + public void setWarehouseId(Integer warehouseId) { | |
44 | + this.warehouseId = warehouseId; | |
45 | + } | |
46 | + | |
47 | + public String getWarehouseCode() { | |
48 | + return warehouseCode; | |
49 | + } | |
50 | + | |
51 | + public void setWarehouseCode(String warehouseCode) { | |
52 | + this.warehouseCode = warehouseCode; | |
53 | + } | |
54 | + | |
55 | + public String getCarNo() { | |
56 | + return carNo; | |
57 | + } | |
58 | + | |
59 | + public void setCarNo(String carNo) { | |
60 | + this.carNo = carNo; | |
61 | + } | |
62 | + | |
63 | + public String getInteractionId() { | |
64 | + return interactionId; | |
65 | + } | |
66 | + | |
67 | + public void setInteractionId(String interactionId) { | |
68 | + this.interactionId = interactionId; | |
69 | + } | |
70 | + | |
71 | + public String getTaskType() { | |
72 | + return taskType; | |
73 | + } | |
74 | + | |
75 | + public void setTaskType(String taskType) { | |
76 | + this.taskType = taskType; | |
77 | + } | |
78 | + | |
79 | + public String getShelfNo() { | |
80 | + return shelfNo; | |
81 | + } | |
82 | + | |
83 | + public void setShelfNo(String shelfNo) { | |
84 | + this.shelfNo = shelfNo; | |
85 | + } | |
86 | + | |
87 | + public String getStation() { | |
88 | + return station; | |
89 | + } | |
90 | + | |
91 | + public void setStation(String station) { | |
92 | + this.station = station; | |
93 | + } | |
94 | + | |
95 | + public String getCurrentLocationNo() { | |
96 | + return currentLocationNo; | |
97 | + } | |
98 | + | |
99 | + public void setCurrentLocationNo(String currentLocationNo) { | |
100 | + this.currentLocationNo = currentLocationNo; | |
101 | + } | |
102 | + | |
103 | + public String getFromLocationNo() { | |
104 | + return fromLocationNo; | |
105 | + } | |
106 | + | |
107 | + public void setFromLocationNo(String fromLocationNo) { | |
108 | + this.fromLocationNo = fromLocationNo; | |
109 | + } | |
110 | + | |
111 | + public String getToLocationNo() { | |
112 | + return toLocationNo; | |
113 | + } | |
114 | + | |
115 | + public void setToLocationNo(String toLocationNo) { | |
116 | + this.toLocationNo = toLocationNo; | |
117 | + } | |
118 | + | |
119 | + public String getOrientation() { | |
120 | + return orientation; | |
121 | + } | |
122 | + | |
123 | + public void setOrientation(String orientation) { | |
124 | + this.orientation = orientation; | |
125 | + } | |
126 | + | |
127 | + public Integer getPercentCapacity() { | |
128 | + return percentCapacity; | |
129 | + } | |
130 | + | |
131 | + public void setPercentCapacity(Integer percentCapacity) { | |
132 | + this.percentCapacity = percentCapacity; | |
133 | + } | |
134 | + | |
135 | + public Integer getExceptionFlag() { | |
136 | + return exceptionFlag; | |
137 | + } | |
138 | + | |
139 | + public void setExceptionFlag(Integer exceptionFlag) { | |
140 | + this.exceptionFlag = exceptionFlag; | |
141 | + } | |
142 | + | |
143 | + public String getState() { | |
144 | + return state; | |
145 | + } | |
146 | + | |
147 | + public void setState(String state) { | |
148 | + this.state = state; | |
149 | + } | |
150 | + | |
151 | + public String getExceptionInfo() { | |
152 | + return exceptionInfo; | |
153 | + } | |
154 | + | |
155 | + public void setExceptionInfo(String exceptionInfo) { | |
156 | + this.exceptionInfo = exceptionInfo; | |
157 | + } | |
158 | + | |
159 | + | |
160 | + | |
161 | +} | |
... | ... |
src/main/java/com/huaheng/api/acs/service/AcsService.java
0 → 100644
1 | +package com.huaheng.api.acs.service; | |
2 | + | |
3 | +import com.huaheng.api.acs.domain.AgvTask; | |
4 | +import com.huaheng.api.acs.domain.StateInfoUploadModel; | |
5 | +import com.huaheng.framework.web.domain.AjaxResult; | |
6 | + | |
7 | +public interface AcsService { | |
8 | + | |
9 | + | |
10 | + //AGV 信息上传 | |
11 | + AjaxResult StateInfoUpload(StateInfoUploadModel model); | |
12 | + | |
13 | + | |
14 | + //AGV 任务回传 | |
15 | + AjaxResult TaskConfirm(AgvTask agvTask); | |
16 | +} | |
... | ... |
src/main/java/com/huaheng/api/acs/service/AcsServiceImpl.java
0 → 100644
1 | +package com.huaheng.api.acs.service; | |
2 | + | |
3 | +import com.huaheng.api.acs.domain.AgvTask; | |
4 | +import com.huaheng.api.acs.domain.StateInfoUploadModel; | |
5 | +import com.huaheng.framework.web.domain.AjaxResult; | |
6 | +import org.springframework.stereotype.Service; | |
7 | + | |
8 | +/** | |
9 | + * @ClassName AcsServiceImpl | |
10 | + * @Description TODO | |
11 | + * @Author Administrator | |
12 | + * @Date 2019/12/2615:38 | |
13 | + */ | |
14 | +@Service | |
15 | +public class AcsServiceImpl implements AcsService { | |
16 | + @Override | |
17 | + public AjaxResult StateInfoUpload(StateInfoUploadModel model) { | |
18 | + return null; | |
19 | + } | |
20 | + | |
21 | + @Override | |
22 | + public AjaxResult TaskConfirm(AgvTask agvTask) { | |
23 | + return null; | |
24 | + } | |
25 | +} | |
... | ... |
src/main/java/com/huaheng/api/general/controller/BasicDataApi.java
... | ... | @@ -5,10 +5,12 @@ import com.huaheng.framework.aspectj.lang.annotation.Log; |
5 | 5 | import com.huaheng.framework.aspectj.lang.constant.BusinessType; |
6 | 6 | import com.huaheng.framework.web.controller.BaseController; |
7 | 7 | import com.huaheng.framework.web.domain.AjaxResult; |
8 | +import com.huaheng.pc.config.containerCapacity.domain.ContainerCapacity; | |
8 | 9 | import com.huaheng.pc.config.customer.domain.Customer; |
9 | 10 | import com.huaheng.pc.config.material.domain.Material; |
10 | 11 | import com.huaheng.pc.config.supplier.domain.Supplier; |
11 | 12 | import com.huaheng.pc.config.warehouse.domain.Warehouse; |
13 | +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; | |
12 | 14 | import com.huaheng.pc.system.dept.domain.Dept; |
13 | 15 | import com.huaheng.pc.system.dict.domain.DictData; |
14 | 16 | import com.huaheng.pc.system.user.domain.User; |
... | ... | @@ -38,6 +40,17 @@ public class BasicDataApi extends BaseController { |
38 | 40 | return ajaxResult; |
39 | 41 | } |
40 | 42 | |
43 | + | |
44 | + @Log(title = "物料查询", action = BusinessType.INSERT) | |
45 | + @PostMapping("/queryMaterialApi") | |
46 | + @ApiOperation("物料查询公共接口") | |
47 | + @ResponseBody | |
48 | + public AjaxResult QueryMaterialApi(@RequestBody Material material) | |
49 | + { | |
50 | + AjaxResult ajaxResult = basicDataApiService.queryMaterial(material); | |
51 | + return ajaxResult; | |
52 | + } | |
53 | + | |
41 | 54 | /** |
42 | 55 | * 同步字典 |
43 | 56 | */ |
... | ... | @@ -105,6 +118,29 @@ public class BasicDataApi extends BaseController { |
105 | 118 | return ajaxResult; |
106 | 119 | } |
107 | 120 | |
121 | + | |
122 | + @Log(title = "用户同步", action = BusinessType.INSERT) | |
123 | + @PostMapping("/queryUserApi") | |
124 | + @ApiOperation("用户查询公共接口") | |
125 | + @ResponseBody | |
126 | + public AjaxResult queryUserApi(@RequestBody User user) | |
127 | + { | |
128 | + AjaxResult ajaxResult = basicDataApiService.queryUser(user); | |
129 | + return ajaxResult; | |
130 | + } | |
131 | + | |
132 | + /** | |
133 | + * 同步容器容量 | |
134 | + */ | |
135 | + @Log(title = "容器容量添加", action = BusinessType.INSERT) | |
136 | + @PostMapping("/containerCapacity") | |
137 | + @ApiOperation("容器容量添加公共接口") | |
138 | + @ResponseBody | |
139 | + public AjaxResult containerCapacityApi(@RequestBody ContainerCapacity containerCapacity){ | |
140 | + AjaxResult ajaxResult = basicDataApiService.containerCapacity(containerCapacity); | |
141 | + return ajaxResult; | |
142 | + } | |
143 | + | |
108 | 144 | /** |
109 | 145 | * 同步供应商档案 |
110 | 146 | */ |
... | ... | @@ -119,5 +155,17 @@ public class BasicDataApi extends BaseController { |
119 | 155 | |
120 | 156 | |
121 | 157 | |
158 | + @Log(title = "库存同步", action = BusinessType.INSERT) | |
159 | + @PostMapping("/queryInventoryApi") | |
160 | + @ApiOperation("库存查询公共接口") | |
161 | + @ResponseBody | |
162 | + public AjaxResult queryInventoryApi(@RequestBody InventoryDetail inventoryDetail) | |
163 | + { | |
164 | + AjaxResult ajaxResult = basicDataApiService.queryInventoryApi(inventoryDetail); | |
165 | + return ajaxResult; | |
166 | + } | |
167 | + | |
168 | + | |
169 | + | |
122 | 170 | |
123 | 171 | } |
... | ... |
src/main/java/com/huaheng/api/general/controller/ReceiptApi.java
0 → 100644
1 | +package com.huaheng.api.general.controller; | |
2 | + | |
3 | + | |
4 | +import com.huaheng.api.general.domain.ReceiptDomain; | |
5 | +import com.huaheng.api.general.service.ReceiptApiService; | |
6 | +import com.huaheng.framework.aspectj.lang.annotation.Log; | |
7 | +import com.huaheng.framework.aspectj.lang.constant.BusinessType; | |
8 | +import com.huaheng.framework.web.domain.AjaxResult; | |
9 | +import io.swagger.annotations.Api; | |
10 | +import io.swagger.annotations.ApiOperation; | |
11 | +import org.springframework.web.bind.annotation.*; | |
12 | + | |
13 | +import javax.annotation.Resource; | |
14 | + | |
15 | +@RestController | |
16 | +@RequestMapping("/api/receiptApi") | |
17 | +@Api(tags = {"receipt"}, description = "入库单接口") | |
18 | +public class ReceiptApi { | |
19 | + | |
20 | + @Resource | |
21 | + private ReceiptApiService receiptApiService; | |
22 | + | |
23 | + | |
24 | + /** | |
25 | + * 同步入库单 | |
26 | + */ | |
27 | + @Log(title = "入库单添加", action = BusinessType.INSERT) | |
28 | + @PostMapping("/receipt") | |
29 | + @ApiOperation("入库单添加公共接口") | |
30 | + @ResponseBody | |
31 | + public AjaxResult Receipt(@RequestBody ReceiptDomain receiptDomain) | |
32 | + { | |
33 | + AjaxResult ajaxResult = receiptApiService.receipt(receiptDomain); | |
34 | + return ajaxResult; | |
35 | + } | |
36 | + | |
37 | +} | |
... | ... |
src/main/java/com/huaheng/api/general/controller/ShipmentApi.java
0 → 100644
1 | +package com.huaheng.api.general.controller; | |
2 | + | |
3 | + | |
4 | +import com.huaheng.api.general.domain.ShipmentDomain; | |
5 | +import com.huaheng.api.general.service.ShipmentApiService; | |
6 | +import com.huaheng.framework.aspectj.lang.annotation.Log; | |
7 | +import com.huaheng.framework.aspectj.lang.constant.BusinessType; | |
8 | +import com.huaheng.framework.web.domain.AjaxResult; | |
9 | +import io.swagger.annotations.Api; | |
10 | +import io.swagger.annotations.ApiOperation; | |
11 | +import org.springframework.web.bind.annotation.*; | |
12 | + | |
13 | +import javax.annotation.Resource; | |
14 | + | |
15 | +@RestController | |
16 | +@RequestMapping("/api/shipmentApi") | |
17 | +@Api(tags = {"shipment"}, description = "出库单接口") | |
18 | +public class ShipmentApi { | |
19 | + | |
20 | + @Resource | |
21 | + private ShipmentApiService shipmentApiService; | |
22 | + | |
23 | + /** | |
24 | + * 同步出库单 | |
25 | + */ | |
26 | + @Log(title = "出库单添加", action = BusinessType.INSERT) | |
27 | + @PostMapping("/shipment") | |
28 | + @ApiOperation("出库单添加公共接口") | |
29 | + @ResponseBody | |
30 | + public AjaxResult Shipment(@RequestBody ShipmentDomain shipmentDomain) | |
31 | + { | |
32 | + AjaxResult ajaxResult = shipmentApiService.shipment(shipmentDomain); | |
33 | + return ajaxResult; | |
34 | + } | |
35 | +} | |
... | ... |
src/main/java/com/huaheng/api/general/domain/InventoryDomain.java
0 → 100644
1 | +package com.huaheng.api.general.domain; | |
2 | + | |
3 | +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; | |
4 | +import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader; | |
5 | +import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; | |
6 | +import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; | |
7 | +import lombok.Data; | |
8 | + | |
9 | +import java.util.List; | |
10 | +import java.util.Map; | |
11 | + | |
12 | +@Data | |
13 | +public class InventoryDomain { | |
14 | + private Map<Integer,InventoryHeader> inventoryHeader; | |
15 | + | |
16 | + private List<InventoryDetail> inventoryDetails; | |
17 | +} | |
... | ... |
src/main/java/com/huaheng/api/general/domain/ReceiptDomain.java
0 → 100644
1 | +package com.huaheng.api.general.domain; | |
2 | + | |
3 | +import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; | |
4 | +import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService; | |
5 | +import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; | |
6 | +import lombok.Data; | |
7 | + | |
8 | +import java.util.List; | |
9 | + | |
10 | +@Data | |
11 | +public class ReceiptDomain { | |
12 | + | |
13 | + //入库主单 | |
14 | + private ReceiptHeader receiptHeader; | |
15 | + | |
16 | + //入库子单列 | |
17 | + private List<ReceiptDetail> receiptDetails; | |
18 | +} | |
... | ... |
src/main/java/com/huaheng/api/general/domain/ShipmentDomain.java
0 → 100644
1 | +package com.huaheng.api.general.domain; | |
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.util.List; | |
8 | + | |
9 | +@Data | |
10 | +public class ShipmentDomain { | |
11 | + private ShipmentHeader shipmentHeader; | |
12 | + | |
13 | + private List<ShipmentDetail> shipmentDetails; | |
14 | +} | |
... | ... |
src/main/java/com/huaheng/api/general/service/BasicDataApiService.java
... | ... | @@ -2,11 +2,16 @@ package com.huaheng.api.general.service; |
2 | 2 | |
3 | 3 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
4 | 4 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
5 | +import com.huaheng.api.general.domain.InventoryDomain; | |
5 | 6 | import com.huaheng.common.exception.service.ServiceException; |
6 | 7 | import com.huaheng.common.utils.StringUtils; |
7 | 8 | import com.huaheng.framework.web.domain.AjaxResult; |
8 | 9 | import com.huaheng.pc.config.company.domain.Company; |
9 | 10 | import com.huaheng.pc.config.company.service.CompanyService; |
11 | +import com.huaheng.pc.config.containerCapacity.domain.ContainerCapacity; | |
12 | +import com.huaheng.pc.config.containerCapacity.service.ContainerCapacityService; | |
13 | +import com.huaheng.pc.config.containerType.domain.ContainerType; | |
14 | +import com.huaheng.pc.config.containerType.service.ContainerTypeService; | |
10 | 15 | import com.huaheng.pc.config.customer.domain.Customer; |
11 | 16 | import com.huaheng.pc.config.customer.service.CustomerServiceImpl; |
12 | 17 | import com.huaheng.pc.config.material.domain.Material; |
... | ... | @@ -15,6 +20,10 @@ import com.huaheng.pc.config.supplier.domain.Supplier; |
15 | 20 | import com.huaheng.pc.config.supplier.service.SupplierService; |
16 | 21 | import com.huaheng.pc.config.warehouse.domain.Warehouse; |
17 | 22 | import com.huaheng.pc.config.warehouse.service.WarehouseService; |
23 | +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; | |
24 | +import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; | |
25 | +import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader; | |
26 | +import com.huaheng.pc.inventory.inventoryHeader.service.InventoryHeaderService; | |
18 | 27 | import com.huaheng.pc.system.dept.domain.Dept; |
19 | 28 | import com.huaheng.pc.system.dept.service.IDeptService; |
20 | 29 | import com.huaheng.pc.system.dict.domain.DictData; |
... | ... | @@ -30,8 +39,11 @@ import org.springframework.stereotype.Component; |
30 | 39 | import org.springframework.transaction.annotation.Transactional; |
31 | 40 | |
32 | 41 | import javax.annotation.Resource; |
42 | +import java.math.BigDecimal; | |
33 | 43 | import java.util.ArrayList; |
44 | +import java.util.HashMap; | |
34 | 45 | import java.util.List; |
46 | +import java.util.Map; | |
35 | 47 | |
36 | 48 | @Component |
37 | 49 | @Transactional |
... | ... | @@ -42,7 +54,12 @@ public class BasicDataApiService { |
42 | 54 | IDictDataService dictDataService; |
43 | 55 | @Autowired |
44 | 56 | MaterialService materialService; |
45 | - | |
57 | + @Autowired | |
58 | + ContainerTypeService containerTypeService; | |
59 | + @Autowired | |
60 | + InventoryDetailService inventoryDetailService; | |
61 | + @Autowired | |
62 | + InventoryHeaderService inventoryHeaderService; | |
46 | 63 | @Resource |
47 | 64 | private DictTypeMapper dictTypeMapper; |
48 | 65 | @Resource |
... | ... | @@ -66,6 +83,9 @@ public class BasicDataApiService { |
66 | 83 | @Autowired |
67 | 84 | CompanyService companyService; |
68 | 85 | |
86 | + @Autowired | |
87 | + private ContainerCapacityService containerCapacityService; | |
88 | + | |
69 | 89 | //检查仓库 |
70 | 90 | public Warehouse checkWarehouse(String code) { |
71 | 91 | LambdaQueryWrapper<Warehouse> warehouseLam = Wrappers.lambdaQuery(); |
... | ... | @@ -221,6 +241,25 @@ public class BasicDataApiService { |
221 | 241 | return AjaxResult.success("新增物料成功"); |
222 | 242 | } |
223 | 243 | |
244 | + /** | |
245 | + 1,物料同步 | |
246 | + 2,条件查询 | |
247 | + * @param material | |
248 | + * @return | |
249 | + */ | |
250 | + @Transactional | |
251 | + public AjaxResult queryMaterial(Material material) { | |
252 | + if (StringUtils.isEmpty(material.getWarehouseCode())){ | |
253 | + return AjaxResult.error("仓库编码不能为空!!"); | |
254 | + } | |
255 | + if (StringUtils.isEmpty(material.getCompanyCode())){ | |
256 | + return AjaxResult.error("货主编码不能为空!!"); | |
257 | + } | |
258 | + LambdaQueryWrapper<Material> lambdaQueryWrapper =Wrappers.lambdaQuery(material); | |
259 | + materialService.list(lambdaQueryWrapper); | |
260 | + return AjaxResult.success(materialService.list(lambdaQueryWrapper)); | |
261 | + } | |
262 | + | |
224 | 263 | |
225 | 264 | |
226 | 265 | /** |
... | ... | @@ -292,6 +331,20 @@ public class BasicDataApiService { |
292 | 331 | |
293 | 332 | |
294 | 333 | /** |
334 | + 1,用户同步 | |
335 | + 2,条件查询 | |
336 | + * @param user | |
337 | + * @return | |
338 | + */ | |
339 | + @Transactional | |
340 | + public AjaxResult queryUser(User user) { | |
341 | + iUserService.selectUserList(user); | |
342 | + return AjaxResult.success(iUserService.selectUserList(user)); | |
343 | + } | |
344 | + | |
345 | + | |
346 | + | |
347 | + /** | |
295 | 348 | * 部门档案通用接口 |
296 | 349 | * 1、判断必填字段是否为空 |
297 | 350 | * 2、部门编码长度应是双数 |
... | ... | @@ -507,4 +560,114 @@ public class BasicDataApiService { |
507 | 560 | throw new ServiceException("供应商数据问题。。。"); |
508 | 561 | } |
509 | 562 | } |
563 | + | |
564 | + | |
565 | + /** | |
566 | + * 容器容量通用接口 | |
567 | + * 1、判断必填字段是否为空 | |
568 | + * 2、检查仓库、物料和容器类型 | |
569 | + * 3、检查此容器容量是否存在,不存在则添加 | |
570 | + * @param containerCapacity | |
571 | + * @return | |
572 | + */ | |
573 | + public AjaxResult containerCapacity(ContainerCapacity containerCapacity){ | |
574 | + Boolean flag = false; | |
575 | + //1、判断必填字段是否为空 | |
576 | + if(StringUtils.isEmpty(containerCapacity.getContainerType())){ | |
577 | + return AjaxResult.error("没有容器类型"); | |
578 | + } | |
579 | + if(StringUtils.isEmpty(containerCapacity.getWarehouseCode())){ | |
580 | + return AjaxResult.error("没有仓库编号"); | |
581 | + } | |
582 | + if(StringUtils.isEmpty(containerCapacity.getMaterialCode())){ | |
583 | + return AjaxResult.error("没有物料编号"); | |
584 | + } | |
585 | + if(StringUtils.isNull(containerCapacity.getQty())){ | |
586 | + return AjaxResult.error("没有容量上限"); | |
587 | + } | |
588 | + | |
589 | + // 2、检查仓库、物料和容器类型 | |
590 | + this.checkWarehouse(containerCapacity.getWarehouseCode()); | |
591 | + | |
592 | + //物料检查 | |
593 | + LambdaQueryWrapper<Material> materialLam = Wrappers.lambdaQuery(); | |
594 | + materialLam.eq(Material::getCode,containerCapacity.getMaterialCode()) | |
595 | + .eq(Material::getWarehouseCode,containerCapacity.getWarehouseCode()); | |
596 | + Material material = materialService.getOne(materialLam); | |
597 | + if(material == null){ | |
598 | + return AjaxResult.error("系统没有此物料编号"); | |
599 | + } | |
600 | + | |
601 | + //容器类型检查 | |
602 | + LambdaQueryWrapper<ContainerType> containerTypeLamb = Wrappers.lambdaQuery(); | |
603 | + containerTypeLamb.eq(ContainerType::getCode,containerCapacity.getContainerType()) | |
604 | + .eq(ContainerType::getWarehouseCode,containerCapacity.getWarehouseCode()); | |
605 | + ContainerType containerType = containerTypeService.getOne(containerTypeLamb); | |
606 | + if(containerType == null){ | |
607 | + return AjaxResult.error("系统没有此容器类型"); | |
608 | + } | |
609 | + | |
610 | + //3、检查此容器容量是否存在,不存在则添加 | |
611 | + LambdaQueryWrapper<ContainerCapacity> containerCapacityLambd = Wrappers.lambdaQuery(); | |
612 | + containerCapacityLambd.eq(ContainerCapacity::getContainerType,containerCapacity.getContainerType()) | |
613 | + .eq(ContainerCapacity::getWarehouseCode,containerCapacity.getWarehouseCode()) | |
614 | + .eq(ContainerCapacity::getMaterialCode,containerCapacity.getMaterialCode()); | |
615 | + ContainerCapacity capacity = containerCapacityService.getOne(containerCapacityLambd); | |
616 | + if(capacity == null){ | |
617 | + flag = containerCapacityService.save(containerCapacity); | |
618 | + if(flag == false){ | |
619 | + return AjaxResult.error("新增容器容量失败"); | |
620 | + } | |
621 | + }else { | |
622 | + if(capacity.getQty().compareTo(containerCapacity.getQty()) != 0){ | |
623 | + capacity.setQty(containerCapacity.getQty()); | |
624 | + flag = containerCapacityService.updateById(capacity); | |
625 | + if(flag == false){ | |
626 | + return AjaxResult.error("修改容器容量失败"); | |
627 | + } | |
628 | + } | |
629 | + } | |
630 | + return AjaxResult.success("新增容器容量成功"); | |
631 | + } | |
632 | + | |
633 | + | |
634 | + | |
635 | + /** | |
636 | + 1,库存同步 | |
637 | + 2,条件查询 | |
638 | + * @param inventoryDetail | |
639 | + * @return | |
640 | + */ | |
641 | + @Transactional | |
642 | + public AjaxResult queryInventoryApi(InventoryDetail inventoryDetail) { | |
643 | + if (StringUtils.isEmpty(inventoryDetail.getWarehouseCode())){ | |
644 | + return AjaxResult.error("仓库编码不能为空!!"); | |
645 | + } | |
646 | + if (StringUtils.isEmpty(inventoryDetail.getCompanyCode())){ | |
647 | + return AjaxResult.error("货主编码不能为空!!"); | |
648 | + } | |
649 | + //查询库存明细 | |
650 | + LambdaQueryWrapper<InventoryDetail> lambdaQueryWrapper =Wrappers.lambdaQuery(inventoryDetail); | |
651 | + List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(lambdaQueryWrapper); | |
652 | + | |
653 | + //查询库存Header表 | |
654 | + Map<Integer,InventoryHeader> inventoryHeaderList = new HashMap<>();//map防止出现数据重复 | |
655 | + for (InventoryDetail inventoryDetail1:inventoryDetailList) { | |
656 | + LambdaQueryWrapper<InventoryHeader> inventoryHeaderLambdaQueryWrapper =Wrappers.lambdaQuery(); | |
657 | + inventoryHeaderLambdaQueryWrapper.eq(InventoryHeader::getId,inventoryDetail1.getInventoryHeaderId()); | |
658 | + inventoryHeaderList.put(inventoryDetail1.getInventoryHeaderId(),inventoryHeaderService.getOne(inventoryHeaderLambdaQueryWrapper)); | |
659 | + } | |
660 | + | |
661 | + InventoryDomain inventoryDomain =new InventoryDomain(); | |
662 | + inventoryDomain.setInventoryHeader(inventoryHeaderList); | |
663 | + inventoryDomain.setInventoryDetails(inventoryDetailList); | |
664 | + return AjaxResult.success(inventoryDomain); | |
665 | + } | |
666 | + | |
667 | + | |
668 | + | |
669 | + | |
670 | + | |
671 | + | |
672 | + | |
510 | 673 | } |
... | ... |
src/main/java/com/huaheng/api/general/service/ReceiptApiService.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.controller.ReceiptApi; | |
6 | +import com.huaheng.api.general.domain.ReceiptDomain; | |
7 | +import com.huaheng.common.exception.service.ServiceException; | |
8 | +import com.huaheng.common.utils.StringUtils; | |
9 | +import com.huaheng.framework.web.domain.AjaxResult; | |
10 | +import com.huaheng.pc.config.FilterConfigDetail.domain.FilterConfigDetail; | |
11 | +import com.huaheng.pc.config.FilterConfigDetail.service.FilterConfigDetailService; | |
12 | +import com.huaheng.pc.config.company.domain.Company; | |
13 | +import com.huaheng.pc.config.company.service.CompanyService; | |
14 | +import com.huaheng.pc.config.material.domain.Material; | |
15 | +import com.huaheng.pc.config.material.service.MaterialService; | |
16 | +import com.huaheng.pc.config.receiptType.domain.ReceiptType; | |
17 | +import com.huaheng.pc.config.receiptType.service.ReceiptTypeService; | |
18 | +import com.huaheng.pc.config.statusFlow.domain.StatusFlowHeader; | |
19 | +import com.huaheng.pc.config.statusFlow.service.StatusFlowHeaderService; | |
20 | +import com.huaheng.pc.config.supplier.domain.Supplier; | |
21 | +import com.huaheng.pc.config.supplier.service.SupplierService; | |
22 | +import com.huaheng.pc.config.warehouse.domain.Warehouse; | |
23 | +import com.huaheng.pc.config.warehouse.service.WarehouseService; | |
24 | +import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; | |
25 | +import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService; | |
26 | +import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; | |
27 | +import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService; | |
28 | +import org.springframework.stereotype.Component; | |
29 | +import org.springframework.transaction.annotation.Transactional; | |
30 | + | |
31 | +import javax.annotation.Resource; | |
32 | +import java.math.BigDecimal; | |
33 | +import java.util.ArrayList; | |
34 | +import java.util.List; | |
35 | + | |
36 | +@Component | |
37 | +@Transactional | |
38 | +public class ReceiptApiService { | |
39 | + @Resource | |
40 | + private ReceiptHeaderService receiptHeaderService; | |
41 | + @Resource | |
42 | + private ReceiptDetailService receiptDetailService; | |
43 | + @Resource | |
44 | + private ReceiptTypeService receiptTypeService; | |
45 | + @Resource | |
46 | + private WarehouseService warehouseService; | |
47 | + @Resource | |
48 | + private CompanyService companyService; | |
49 | + @Resource | |
50 | + private MaterialService materialService; | |
51 | + @Resource | |
52 | + private SupplierService supplierService; | |
53 | + @Resource | |
54 | + private FilterConfigDetailService filterConfigDetailService; | |
55 | + @Resource | |
56 | + private StatusFlowHeaderService statusFlowHeaderService; | |
57 | + /** | |
58 | + * 入库单下发 | |
59 | + * @param receipt 入库单 | |
60 | + * @return 是否下发成功 | |
61 | + */ | |
62 | + @Transactional(rollbackFor = Exception.class) | |
63 | + public AjaxResult receipt(ReceiptDomain receipt){ | |
64 | + | |
65 | + /* 0.step 获取入库头表,获取入库明细*/ | |
66 | + ReceiptHeader receiptHeader = receipt.getReceiptHeader(); | |
67 | + List<ReceiptDetail> receiptDetails = receipt.getReceiptDetails(); | |
68 | + /* 1.step 校验入库单是否为空*/ | |
69 | + if (receiptHeader == null || receiptDetails.isEmpty()){ | |
70 | + throw new ServiceException("入库主单或入库子单为空"); | |
71 | + } | |
72 | + /* 2.step 检查入库头表合法性*/ | |
73 | + AjaxResult checkReceiptHeaderResult = checkReceiptHeader(receiptHeader); | |
74 | + if (checkReceiptHeaderResult.hasErr() ){ | |
75 | + return AjaxResult.error(checkReceiptHeaderResult.getMsg()); | |
76 | + } | |
77 | + | |
78 | + /* 3.step 检查入库明细合法性*/ | |
79 | + AjaxResult checkReceiptDetailResult = checkReceiptDetail(receiptDetails); | |
80 | + if (checkReceiptDetailResult.hasErr() ){ | |
81 | + return AjaxResult.error(checkReceiptDetailResult.getMsg()); | |
82 | + } | |
83 | + | |
84 | + /* 4.step 计算入库明细总行数、总数量*/ | |
85 | + BigDecimal totalQty = new BigDecimal(0); | |
86 | + for (ReceiptDetail receiptDetail: receiptDetails) { | |
87 | + totalQty.add(receiptDetail.getTotalQty()); | |
88 | + } | |
89 | + receiptHeader.setTotalLines(receiptDetails.size()); | |
90 | + receiptHeader.setTotalQty(totalQty); | |
91 | + | |
92 | + /* 5.step 保存的入库头表*/ | |
93 | + if (!receiptHeaderService.save(receiptHeader)){ | |
94 | + throw new ServiceException("保存入库头表失败"); | |
95 | + } | |
96 | + | |
97 | + /* 6.step 保存入库明细*/ | |
98 | + LambdaQueryWrapper<ReceiptHeader> lambda = Wrappers.lambdaQuery(); | |
99 | + lambda.eq(ReceiptHeader::getWarehouseCode, receiptHeader.getWarehouseCode()) | |
100 | + .eq(ReceiptHeader::getCode, receiptHeader.getCode()); | |
101 | + receiptHeader = receiptHeaderService.getOne(lambda); | |
102 | + List<ReceiptDetail> jsonListDetail= new ArrayList<ReceiptDetail>(); | |
103 | + for (ReceiptDetail receiptDetail : receiptDetails) { | |
104 | + receiptDetail.setReceiptId(receiptHeader.getId()); | |
105 | + receiptDetail.setReceiptCode(receiptHeader.getCode()); | |
106 | + receiptDetail.setWarehouseCode(receiptHeader.getWarehouseCode()); | |
107 | + receiptDetail.setCompanyCode(receiptHeader.getWarehouseCode()); | |
108 | + Material material = materialService.findAllByCode(receiptDetail.getMaterialCode()); | |
109 | + receiptDetail.setMaterialName(material.getName()); | |
110 | + receiptDetail.setMaterialSpec(material.getSpec()); | |
111 | + receiptDetail.setMaterialUnit(material.getUnit()); | |
112 | + if (!receiptDetailService.save(receiptDetail)){ | |
113 | + throw new ServiceException("保存入库明细失败"); | |
114 | + } | |
115 | + jsonListDetail.add(receiptDetail); | |
116 | + | |
117 | + } | |
118 | + /* 6.step回传入库单和入库明细单 */ | |
119 | + ReceiptDomain receiptDomain =new ReceiptDomain(); | |
120 | + receiptDomain.setReceiptHeader(receiptHeader); | |
121 | + receiptDomain.setReceiptDetails(jsonListDetail); | |
122 | + | |
123 | + return AjaxResult.success(receiptDomain); | |
124 | + } | |
125 | + | |
126 | + /** | |
127 | + * 检查入库头表合法性 | |
128 | + * @param receiptHeader 入库头表 | |
129 | + * @return 检查结果 | |
130 | + */ | |
131 | + private AjaxResult checkReceiptHeader(ReceiptHeader receiptHeader){ | |
132 | + /* 0.step 必填项是否为空*/ | |
133 | + if (StringUtils.isEmpty(receiptHeader.getCode()) || StringUtils.isEmpty(receiptHeader.getCompanyCode()) || | |
134 | + StringUtils.isEmpty(receiptHeader.getWarehouseCode()) || StringUtils.isEmpty(receiptHeader.getReceiptType())){ | |
135 | + return AjaxResult.error("入库主单字段有误"); | |
136 | + } | |
137 | + | |
138 | + /* 1.step 查询该单据编码是否已存在*/ | |
139 | + LambdaQueryWrapper<ReceiptHeader> receiptHeaderLambda = Wrappers.lambdaQuery(receiptHeader); | |
140 | + if (receiptHeaderService.getOne(receiptHeaderLambda) != null){ | |
141 | + return AjaxResult.error("该单据已存在:"+receiptHeader.getCode()); | |
142 | + } | |
143 | + | |
144 | + /* 2.step 判断入库类型是否匹配*/ | |
145 | + LambdaQueryWrapper<ReceiptType> receiptTypeLambda = Wrappers.lambdaQuery(); | |
146 | + receiptTypeLambda.eq(ReceiptType::getCode, receiptHeader.getReceiptType()) | |
147 | + .eq(ReceiptType::getWarehouseCode,receiptHeader.getWarehouseCode()) | |
148 | + .eq(ReceiptType::getCompanyCode,receiptHeader.getCompanyCode()); | |
149 | + if (receiptTypeService.getOne(receiptTypeLambda) == null){ | |
150 | + return AjaxResult.error("没有对应的入库单类型"); | |
151 | + } | |
152 | + | |
153 | + /* 3.step 判断仓库是否存在*/ | |
154 | + LambdaQueryWrapper<Warehouse> warehouseLambda = Wrappers.lambdaQuery(); | |
155 | + warehouseLambda.eq(Warehouse::getCode, receiptHeader.getWarehouseCode()); | |
156 | + if (warehouseService.getOne(warehouseLambda) == null){ | |
157 | + return AjaxResult.error("该仓库不存在"); | |
158 | + } | |
159 | + | |
160 | + /* 4.step 判断货主是否存在*/ | |
161 | + LambdaQueryWrapper<Company> companyLambda = Wrappers.lambdaQuery(); | |
162 | + companyLambda.eq(Company::getCode, receiptHeader.getCompanyCode()); | |
163 | + if (companyService.getOne(companyLambda) == null){ | |
164 | + return AjaxResult.error("该货主不存在"); | |
165 | + } | |
166 | + | |
167 | + return AjaxResult.success(""); | |
168 | + } | |
169 | + | |
170 | + /** | |
171 | + * 检查入库明细合法性 | |
172 | + * @param receiptDetails 入库明细 | |
173 | + * @return 检查结果 | |
174 | + */ | |
175 | + private AjaxResult checkReceiptDetail(List<ReceiptDetail> receiptDetails){ | |
176 | + | |
177 | + for (ReceiptDetail receiptDetail: receiptDetails) { | |
178 | + /* 0.step 判断必填字段是否为空且总数量不能为0*/ | |
179 | + if (receiptDetail.getMaterialCode() == null || | |
180 | + new BigDecimal(0).compareTo(receiptDetail.getTotalQty() != null ? | |
181 | + receiptDetail.getTotalQty() : new BigDecimal(0)) == 0 ){ | |
182 | + return AjaxResult.error("入库明细字段有误"); | |
183 | + } | |
184 | + | |
185 | + /* 1.step 判断供应商是否存在*/ | |
186 | + if (receiptDetail.getSupplierCode() != null){ | |
187 | + LambdaQueryWrapper<Supplier> supplierLambda = Wrappers.lambdaQuery(); | |
188 | + supplierLambda.eq(Supplier::getCode, receiptDetail.getSupplierCode()); | |
189 | + if (supplierService.getOne(supplierLambda) == null) { | |
190 | + return AjaxResult.error("供应商不存在"); | |
191 | + } | |
192 | + } | |
193 | + | |
194 | + /* 2.step 判断定位规则是否存在*/ | |
195 | + if (receiptDetail.getLocatingRule() != null){ | |
196 | + LambdaQueryWrapper<FilterConfigDetail> filterConfigDetailLambda = Wrappers.lambdaQuery(); | |
197 | + filterConfigDetailLambda.eq(FilterConfigDetail::getCode, receiptDetail.getLocatingRule()) | |
198 | + .eq(FilterConfigDetail::getModuleType, "receipt") | |
199 | + .eq(FilterConfigDetail::getRecordType, "locationRule"); | |
200 | + FilterConfigDetail filterConfigDetail = filterConfigDetailService.getOne(filterConfigDetailLambda); | |
201 | + if (filterConfigDetail == null){ | |
202 | + return AjaxResult.error(receiptDetail.getLocatingRule()+"定位规则不存在"); | |
203 | + } | |
204 | + } | |
205 | + | |
206 | + /* 3.step 判断流程编码是否存在*/ | |
207 | + if (receiptDetail.getStatusFlowCode() != null){ | |
208 | + LambdaQueryWrapper<StatusFlowHeader> statusFlowHeaderLambda = Wrappers.lambdaQuery(); | |
209 | + statusFlowHeaderLambda.eq(StatusFlowHeader::getCode, receiptDetail.getStatusFlowCode()) | |
210 | + .eq(StatusFlowHeader::getModuleType, "receipt") | |
211 | + .eq(StatusFlowHeader::getRecordType, "receivingFlow"); | |
212 | + StatusFlowHeader statusFlowHeader = statusFlowHeaderService.getOne(statusFlowHeaderLambda); | |
213 | + if (statusFlowHeader == null){ | |
214 | + return AjaxResult.error(receiptDetail.getLocatingRule()+"该流程不存在"); | |
215 | + } | |
216 | + } | |
217 | + } | |
218 | + | |
219 | + return AjaxResult.success(""); | |
220 | + } | |
221 | +} | |
... | ... |
src/main/java/com/huaheng/api/general/service/ShipmentApiService.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.ShipmentDomain; | |
6 | +import com.huaheng.common.exception.service.ServiceException; | |
7 | +import com.huaheng.common.utils.StringUtils; | |
8 | +import com.huaheng.common.utils.security.ShiroUtils; | |
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.config.customer.domain.Customer; | |
13 | +import com.huaheng.pc.config.customer.service.CustomerServiceImpl; | |
14 | +import com.huaheng.pc.config.material.domain.Material; | |
15 | +import com.huaheng.pc.config.material.service.MaterialService; | |
16 | +import com.huaheng.pc.config.shipmentType.domain.ShipmentType; | |
17 | +import com.huaheng.pc.config.shipmentType.service.ShipmentTypeService; | |
18 | +import com.huaheng.pc.config.warehouse.domain.Warehouse; | |
19 | +import com.huaheng.pc.config.warehouse.service.WarehouseService; | |
20 | +import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; | |
21 | +import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailService; | |
22 | +import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; | |
23 | +import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService; | |
24 | +import org.springframework.beans.factory.annotation.Autowired; | |
25 | +import org.springframework.stereotype.Component; | |
26 | +import org.springframework.transaction.annotation.Transactional; | |
27 | + | |
28 | +import java.math.BigDecimal; | |
29 | +import java.util.ArrayList; | |
30 | +import java.util.List; | |
31 | + | |
32 | +/** | |
33 | + * @author ricard | |
34 | + * @time 19/11/11 | |
35 | + * | |
36 | + */ | |
37 | + | |
38 | + | |
39 | +@Component | |
40 | +@Transactional | |
41 | +public class ShipmentApiService { | |
42 | + | |
43 | + @Autowired | |
44 | + private ShipmentHeaderService shipmentHeaderService; | |
45 | + | |
46 | + @Autowired | |
47 | + private ShipmentDetailService shipmentDetailService; | |
48 | + | |
49 | + @Autowired | |
50 | + private WarehouseService warehouseService; | |
51 | + | |
52 | + @Autowired | |
53 | + private CompanyService companyService; | |
54 | + | |
55 | + @Autowired | |
56 | + private CustomerServiceImpl customerService; | |
57 | + | |
58 | + @Autowired | |
59 | + private ShipmentTypeService shipmentTypeService; | |
60 | + | |
61 | + @Autowired | |
62 | + private MaterialService materialService; | |
63 | + | |
64 | + /** | |
65 | + * 出库单下发 | |
66 | + * | |
67 | + * @param shipmentDomain | |
68 | + * @return | |
69 | + */ | |
70 | + @Transactional | |
71 | + public AjaxResult shipment(ShipmentDomain shipmentDomain){ | |
72 | + | |
73 | + //1、判断出库主单和子单列是否为空 | |
74 | + ShipmentHeader shipmentHeader = shipmentDomain.getShipmentHeader(); | |
75 | + List<ShipmentDetail> shipmentDetails = shipmentDomain.getShipmentDetails(); | |
76 | + if(shipmentHeader == null){ | |
77 | + return AjaxResult.error("出库主单为空"); | |
78 | + } | |
79 | + if(shipmentDetails.size() < 1 || shipmentDetails == null ){ | |
80 | + return AjaxResult.error("出库子单为空"); | |
81 | + } | |
82 | + | |
83 | + //2、检查出库主单的合法性 | |
84 | + AjaxResult ajaxResult = this.checkShipmentHeader(shipmentHeader); | |
85 | + | |
86 | + //3、检查出库子单的合法性 | |
87 | + shipmentDetails =this.checkShipmentDetail(shipmentDetails,shipmentHeader); | |
88 | + | |
89 | + //4、保存出库主表 | |
90 | + BigDecimal totalQty = new BigDecimal(0); | |
91 | + for (ShipmentDetail item: shipmentDetails) { | |
92 | + totalQty.add(item.getShipQty()); | |
93 | + } | |
94 | + shipmentHeader.setTotalLines(shipmentDetails.size()); | |
95 | + shipmentHeader.setTotalQty(totalQty); | |
96 | + shipmentHeader.setCode(shipmentHeaderService.createCode(shipmentHeader.getShipmentType())); | |
97 | + | |
98 | + if(!shipmentHeaderService.save(shipmentHeader)){ | |
99 | + throw new ServiceException("保存出库主表失败"); | |
100 | + } | |
101 | + | |
102 | + //5、保存出库子表 | |
103 | + List<ShipmentDetail> shipmentDetailList = new ArrayList<>(); | |
104 | + for(ShipmentDetail shipmentDetail : shipmentDetails){ | |
105 | + shipmentDetail.setShipmentId(shipmentHeader.getId()); | |
106 | + shipmentDetail.setShipmentCode(shipmentHeader.getCode()); | |
107 | + shipmentDetail.setWarehouseCode(shipmentHeader.getWarehouseCode()); | |
108 | + shipmentDetail.setCompanyCode(shipmentHeader.getCompanyCode()); | |
109 | + } | |
110 | + | |
111 | + int num = 0; | |
112 | + if(shipmentDetails.size() >500 ){ | |
113 | + for(ShipmentDetail item : shipmentDetails){ | |
114 | + num++; | |
115 | + shipmentDetailList.add(item); | |
116 | + if(num % 500 ==0 || num == shipmentDetails.size()){ | |
117 | + if(!shipmentDetailService.insertDetails(shipmentDetailList)){ | |
118 | + throw new ServiceException("保存出库子表失败"); | |
119 | + } | |
120 | + shipmentDetailList=new ArrayList<>(); | |
121 | + } | |
122 | + } | |
123 | + }else { | |
124 | + if(!shipmentDetailService.insertDetails(shipmentDetails)){ | |
125 | + throw new ServiceException("保存出库子表失败"); | |
126 | + } | |
127 | + } | |
128 | + | |
129 | + //6回传添加对象 | |
130 | + LambdaQueryWrapper<ShipmentDetail> lambdaQueryWrapper =Wrappers.lambdaQuery(); | |
131 | + lambdaQueryWrapper.eq(ShipmentDetail::getShipmentId ,shipmentHeader.getId()); | |
132 | + | |
133 | + ShipmentDomain jsonShipmentDomain =new ShipmentDomain(); | |
134 | + jsonShipmentDomain.setShipmentHeader(shipmentHeader); | |
135 | + jsonShipmentDomain.setShipmentDetails(shipmentDetailService.list(lambdaQueryWrapper)); | |
136 | + | |
137 | + return AjaxResult.success(jsonShipmentDomain); | |
138 | + } | |
139 | + | |
140 | + | |
141 | + /** | |
142 | + * 检查出库主单的合法性 | |
143 | + * @param shipmentHeader | |
144 | + * @return | |
145 | + */ | |
146 | + public AjaxResult checkShipmentHeader(ShipmentHeader shipmentHeader){ | |
147 | + //1、判断仓库和货主 | |
148 | + if(StringUtils.isEmpty(shipmentHeader.getWarehouseCode())){ | |
149 | + return AjaxResult.error("仓库为空"); | |
150 | + } | |
151 | + if(StringUtils.isEmpty(shipmentHeader.getCompanyCode())){ | |
152 | + return AjaxResult.error("货主为空"); | |
153 | + } | |
154 | + | |
155 | + | |
156 | + LambdaQueryWrapper<Warehouse> warehouseLamb = Wrappers.lambdaQuery(); | |
157 | + warehouseLamb.eq(Warehouse::getCode,shipmentHeader.getWarehouseCode()); | |
158 | + Warehouse warehouse =warehouseService.getOne(warehouseLamb); | |
159 | + if(warehouse == null){ | |
160 | + return AjaxResult.error("wms没有此仓库"); | |
161 | + } | |
162 | + | |
163 | + LambdaQueryWrapper<Company> companyLamb = Wrappers.lambdaQuery(); | |
164 | + companyLamb.eq(Company::getCode,shipmentHeader.getCompanyCode()); | |
165 | + Company company =companyService.getOne(companyLamb); | |
166 | + if(company == null){ | |
167 | + return AjaxResult.error("wms没有此货主"); | |
168 | + } | |
169 | + | |
170 | + //2、判断出库类型 | |
171 | + LambdaQueryWrapper<ShipmentType> shipmentTypeLamb = Wrappers.lambdaQuery(); | |
172 | + shipmentTypeLamb.eq(ShipmentType::getCode,shipmentHeader.getShipmentType()) | |
173 | + .eq(ShipmentType::getWarehouseCode,shipmentHeader.getWarehouseCode()); | |
174 | + ShipmentType shipmentType =shipmentTypeService.getOne(shipmentTypeLamb); | |
175 | + if(shipmentType == null){ | |
176 | + return AjaxResult.error("wms没有此出库类型"); | |
177 | + } | |
178 | + | |
179 | + //3、检查上游单号是否存在 | |
180 | + LambdaQueryWrapper<ShipmentHeader> shipmentHeaderLamb = Wrappers.lambdaQuery(); | |
181 | + shipmentHeaderLamb.eq(ShipmentHeader::getWarehouseCode,shipmentHeader.getWarehouseCode()) | |
182 | + .eq(ShipmentHeader::getReferCode,shipmentHeader.getReferCode()); | |
183 | + List<ShipmentHeader> shipmentHeaders = shipmentHeaderService.list(shipmentHeaderLamb); | |
184 | + if(shipmentHeaders.size() > 0 || shipmentHeaders != null){ | |
185 | + return AjaxResult.success("出库单已经下发"); | |
186 | + } | |
187 | + | |
188 | + //4、检查客户 | |
189 | + if(StringUtils.isNotEmpty(shipmentHeader.getCustomerCode())){ | |
190 | + LambdaQueryWrapper<Customer> customerLamb = Wrappers.lambdaQuery(); | |
191 | + customerLamb.eq(Customer::getWarehouseCode,shipmentHeader.getWarehouseCode()) | |
192 | + .eq(Customer::getCode,shipmentHeader.getCustomerCode()); | |
193 | + Customer customer = customerService.getOne(customerLamb); | |
194 | + if(customer == null){ | |
195 | + return AjaxResult.error("wms没有此客户"); | |
196 | + } | |
197 | + } | |
198 | + return AjaxResult.success(shipmentHeader); | |
199 | + } | |
200 | + | |
201 | + | |
202 | + /** | |
203 | + * 检查出库子单的合法性 | |
204 | + * @param shipmentDetails | |
205 | + * @return | |
206 | + */ | |
207 | + public List<ShipmentDetail> checkShipmentDetail(List<ShipmentDetail> shipmentDetails,ShipmentHeader shipmentHeader){ | |
208 | + | |
209 | + for(ShipmentDetail shipmentDetail : shipmentDetails) { | |
210 | + //1、检查物料 | |
211 | + if(StringUtils.isEmpty(shipmentDetail.getMaterialCode())){ | |
212 | + throw new ServiceException("物料为空"); | |
213 | + } | |
214 | + LambdaQueryWrapper<Material> materialLamb = Wrappers.lambdaQuery(); | |
215 | + materialLamb.eq(Material::getCode,shipmentDetail.getMaterialCode()) | |
216 | + .eq(Material::getWarehouseCode,shipmentHeader.getWarehouseCode()); | |
217 | + Material material = materialService.getOne(materialLamb); | |
218 | + if(material == null){ | |
219 | + throw new ServiceException("wms没有此物料"); | |
220 | + } | |
221 | + | |
222 | + //2、赋值物料属性 | |
223 | + shipmentDetail.setMaterialName(material.getName()); | |
224 | + shipmentDetail.setMaterialSpec(material.getSpec()); | |
225 | + shipmentDetail.setMaterialUnit(material.getUnit()); | |
226 | + } | |
227 | + return shipmentDetails; | |
228 | + } | |
229 | +} | |
... | ... |
src/main/java/com/huaheng/api/wcs/controller/EmptyOutHandle.java
1 | 1 | package com.huaheng.api.wcs.controller; |
2 | 2 | |
3 | -import com.huaheng.api.wcs.domain.WcsTask; | |
4 | 3 | import com.huaheng.api.wcs.service.emptyOutHandle.EmptyOutHandleService; |
5 | -import com.huaheng.api.wcs.service.overrideHandle.OverrideHandleService; | |
6 | 4 | import com.huaheng.framework.aspectj.lang.annotation.Log; |
7 | 5 | import com.huaheng.framework.aspectj.lang.constant.BusinessType; |
8 | 6 | import com.huaheng.framework.web.controller.BaseController; |
9 | 7 | import com.huaheng.framework.web.domain.AjaxResult; |
10 | -import io.swagger.annotations.Api; | |
11 | 8 | import io.swagger.annotations.ApiOperation; |
12 | -import org.springframework.web.bind.annotation.*; | |
9 | +import org.springframework.web.bind.annotation.PostMapping; | |
10 | +import org.springframework.web.bind.annotation.RequestMapping; | |
11 | +import org.springframework.web.bind.annotation.ResponseBody; | |
12 | +import org.springframework.web.bind.annotation.RestController; | |
13 | 13 | |
14 | 14 | import javax.annotation.Resource; |
15 | 15 | |
... | ... | @@ -21,7 +21,7 @@ import javax.annotation.Resource; |
21 | 21 | */ |
22 | 22 | |
23 | 23 | @RestController |
24 | -@RequestMapping("/api/WCS/v2") | |
24 | +@RequestMapping("/API/WMS/v2") | |
25 | 25 | public class EmptyOutHandle extends BaseController { |
26 | 26 | |
27 | 27 | @Resource |
... | ... | @@ -31,9 +31,9 @@ public class EmptyOutHandle extends BaseController { |
31 | 31 | @PostMapping("/EmptyOutHandle") |
32 | 32 | @ApiOperation("wcs空出处理") |
33 | 33 | @ResponseBody |
34 | - public AjaxResult EmptyOutHandle(@RequestBody WcsTask wcsTask) | |
34 | + public AjaxResult EmptyOutHandle(String taskNo) | |
35 | 35 | { |
36 | - AjaxResult ajaxResult =emptyOutHandleService.EmptyOutHandle(wcsTask) ; | |
36 | + AjaxResult ajaxResult =emptyOutHandleService.EmptyOutHandle(taskNo) ; | |
37 | 37 | return ajaxResult; |
38 | 38 | } |
39 | 39 | |
... | ... |
src/main/java/com/huaheng/api/wcs/controller/OverrideHandle.java
... | ... | @@ -20,20 +20,18 @@ import javax.annotation.Resource; |
20 | 20 | */ |
21 | 21 | |
22 | 22 | @RestController |
23 | -@RequestMapping("/api/WCS/v2") | |
23 | +@RequestMapping("/API/WMS/v2") | |
24 | 24 | public class OverrideHandle extends BaseController { |
25 | 25 | |
26 | 26 | @Resource |
27 | 27 | private OverrideHandleService overrideHandleService; |
28 | 28 | |
29 | 29 | @Log(title = "wcs重入处理", action = BusinessType.INSERT) |
30 | - @PostMapping("/OverrideHandle") | |
30 | + @PostMapping("/ReenterHandle") | |
31 | 31 | @ApiOperation("wcs重入处理") |
32 | 32 | @ResponseBody |
33 | - public AjaxResult OverrideHandle(@RequestBody TaskFinishDomain taskFinishDomain) | |
34 | - { | |
35 | - AjaxResult ajaxResult =overrideHandleService.OverrideHandle(taskFinishDomain) ; | |
36 | - return ajaxResult; | |
33 | + public AjaxResult ReenterHandle(@RequestBody TaskFinishDomain taskFinishDomain) { | |
34 | + return overrideHandleService.OverrideHandle(taskFinishDomain); | |
37 | 35 | } |
38 | 36 | |
39 | 37 | |
... | ... |
src/main/java/com/huaheng/api/wcs/controller/TaskFinish.java
src/main/java/com/huaheng/api/wcs/controller/TaskInfoController.java
0 → 100644
1 | +package com.huaheng.api.wcs.controller; | |
2 | + | |
3 | +import com.huaheng.api.wcs.service.taskCancel.TaskCancelService; | |
4 | +import com.huaheng.framework.web.controller.BaseController; | |
5 | +import com.huaheng.framework.web.domain.AjaxResult; | |
6 | +import org.springframework.web.bind.annotation.GetMapping; | |
7 | +import org.springframework.web.bind.annotation.RequestMapping; | |
8 | +import org.springframework.web.bind.annotation.RestController; | |
9 | + | |
10 | +import javax.annotation.Resource; | |
11 | + | |
12 | +/** | |
13 | + * Created by Enzo Cotter on 2019/12/6. | |
14 | + */ | |
15 | +@RestController | |
16 | +@RequestMapping("/API/taskInfo") | |
17 | +public class TaskInfoController extends BaseController { | |
18 | + | |
19 | + @Resource | |
20 | + private TaskCancelService taskCancelService; | |
21 | + | |
22 | + | |
23 | + @GetMapping | |
24 | + public AjaxResult info(Integer id) { | |
25 | + return taskCancelService.TaskCance(id); | |
26 | + } | |
27 | +} | |
... | ... |
src/main/java/com/huaheng/api/wcs/controller/WarecellAllocation.java
... | ... | @@ -21,7 +21,7 @@ import javax.annotation.Resource; |
21 | 21 | */ |
22 | 22 | |
23 | 23 | @RestController |
24 | -@RequestMapping("/api/WCS/v2") | |
24 | +@RequestMapping("/API/WMS/v2") | |
25 | 25 | public class WarecellAllocation extends BaseController { |
26 | 26 | |
27 | 27 | @Resource |
... | ... | @@ -31,10 +31,30 @@ public class WarecellAllocation extends BaseController { |
31 | 31 | @PostMapping("/WarecellAllocation") |
32 | 32 | @ApiOperation(value="wcs仓位分配", notes="wcs仓位分配", httpMethod = "POST") |
33 | 33 | @ResponseBody |
34 | - public AjaxResult WarecellAllocation(@RequestBody WcsTask wcsTask) | |
35 | - { | |
36 | - AjaxResult ajaxResult =warecellAllocationService.WarecellAllocation(wcsTask) ; | |
37 | - return ajaxResult; | |
34 | + public AjaxResult WarecellAllocation(String taskNo, String length, String width, String height, String weight, String destination) { | |
35 | + WcsTask wcsTask = new WcsTask(); | |
36 | + wcsTask.setTaskNo(taskNo); | |
37 | + wcsTask.setLength(length); | |
38 | + wcsTask.setWidth(width); | |
39 | + wcsTask.setHeight(height); | |
40 | + wcsTask.setWeight(weight); | |
41 | + wcsTask.setDestination(destination); | |
42 | + return warecellAllocationService.warecellAllocation(wcsTask); | |
43 | + } | |
44 | + | |
45 | + | |
46 | + @Log(title = "wcs去向分配", action = BusinessType.INSERT) | |
47 | + @PostMapping("/DestinationAllocation") | |
48 | + @ApiOperation(value="wcs去向分配", notes="wcs去向分配", httpMethod = "POST") | |
49 | + @ResponseBody | |
50 | + public AjaxResult DestinationAllocation(String taskNo, String length, String width, String height, String weight) { | |
51 | + WcsTask wcsTask = new WcsTask(); | |
52 | + wcsTask.setTaskNo(taskNo); | |
53 | + wcsTask.setLength(length); | |
54 | + wcsTask.setWidth(width); | |
55 | + wcsTask.setHeight(height); | |
56 | + wcsTask.setWeight(weight); | |
57 | + return warecellAllocationService.destinationAllocation(wcsTask); | |
38 | 58 | } |
39 | 59 | |
40 | 60 | |
... | ... |
src/main/java/com/huaheng/api/wcs/domain/TaskFinishDomain.java
... | ... | @@ -18,9 +18,10 @@ public class TaskFinishDomain { |
18 | 18 | //空出,int,1:空出 0:正常,必填 |
19 | 19 | private Integer isEmptyOut; |
20 | 20 | |
21 | + //取货错,int,1:取货错 0:正常 必填 | |
22 | + private Integer isForkError; | |
23 | + | |
21 | 24 | //重入的库位编码,string (50),默认0,必填 |
22 | 25 | private String redirectionLocationCode; |
23 | 26 | |
24 | - //目的位置编码,string (50),默认0 ",必填 | |
25 | - private String toLocationCode; | |
26 | 27 | } |
... | ... |
src/main/java/com/huaheng/api/wcs/domain/WcsTask.java
... | ... | @@ -30,6 +30,8 @@ public class WcsTask implements Serializable { |
30 | 30 | //平台 |
31 | 31 | private String platform; |
32 | 32 | |
33 | + private String warehouseCode; | |
34 | + | |
33 | 35 | //容器编码 |
34 | 36 | private String containerCode; |
35 | 37 | |
... | ... | @@ -51,8 +53,8 @@ public class WcsTask implements Serializable { |
51 | 53 | //优先级,int,默认100 ,数字越小优先级越高",必填 |
52 | 54 | private Integer priority; |
53 | 55 | |
54 | - //巷道 | |
55 | - private String roadWay; | |
56 | + //目标 | |
57 | + private String destination; | |
56 | 58 | |
57 | 59 | //长 |
58 | 60 | private String length; |
... | ... |
src/main/java/com/huaheng/api/wcs/service/emptyOutHandle/EmptyOutHandleService.java
src/main/java/com/huaheng/api/wcs/service/emptyOutHandle/EmptyOutHandleServiceImpl.java
... | ... | @@ -21,20 +21,20 @@ public class EmptyOutHandleServiceImpl implements EmptyOutHandleService { |
21 | 21 | * 1、判断非空字段 |
22 | 22 | * 2、根据任务号查找任务 |
23 | 23 | * 3、修改该任务为空出,过后处理 |
24 | - * @param wcsTask | |
24 | + * @param taskNo | |
25 | 25 | * @return |
26 | 26 | */ |
27 | 27 | @Override |
28 | 28 | @Transactional |
29 | - public AjaxResult EmptyOutHandle(WcsTask wcsTask) { | |
29 | + public AjaxResult EmptyOutHandle(String taskNo) { | |
30 | 30 | |
31 | 31 | //1、判断非空字段 |
32 | - if(StringUtils.isEmpty(wcsTask.getTaskNo())){ | |
32 | + if(StringUtils.isEmpty(taskNo)){ | |
33 | 33 | return AjaxResult.error("任务号为空"); |
34 | 34 | } |
35 | 35 | |
36 | 36 | //2、根据任务号查找任务 |
37 | - TaskHeader taskHeader = taskHeaderService.getById(Integer.valueOf(wcsTask.getTaskNo())); | |
37 | + TaskHeader taskHeader = taskHeaderService.getById(Integer.valueOf(taskNo)); | |
38 | 38 | if(taskHeader == null){ |
39 | 39 | return AjaxResult.error("任务号错误,没有找到该任务"); |
40 | 40 | } |
... | ... |
src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java
... | ... | @@ -3,7 +3,6 @@ package com.huaheng.api.wcs.service.overrideHandle; |
3 | 3 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
4 | 4 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
5 | 5 | import com.huaheng.api.wcs.domain.TaskFinishDomain; |
6 | -import com.huaheng.api.wcs.domain.WcsTask; | |
7 | 6 | import com.huaheng.api.wcs.service.warecellAllocation.WarecellAllocationService; |
8 | 7 | import com.huaheng.common.exception.service.ServiceException; |
9 | 8 | import com.huaheng.common.utils.StringUtils; |
... | ... | @@ -64,9 +63,6 @@ public class OverrideHandleServiceImpl implements OverrideHandleService { |
64 | 63 | if(StringUtils.isEmpty(taskFinishDomain.getTaskNo())){ |
65 | 64 | return AjaxResult.error("任务号为空"); |
66 | 65 | } |
67 | - if(StringUtils.isEmpty(taskFinishDomain.getToLocationCode())){ | |
68 | - return AjaxResult.error("目的库位为空"); | |
69 | - } | |
70 | 66 | if(StringUtils.isEmpty(taskFinishDomain.getRedirectionLocationCode())){ |
71 | 67 | return AjaxResult.error("重入的库位编码为空"); |
72 | 68 | } |
... | ... |
src/main/java/com/huaheng/api/wcs/service/pickupErrorHandle/PickupErrorHandleService.java
0 → 100644
src/main/java/com/huaheng/api/wcs/service/pickupErrorHandle/PickupErrorHandleServiceImpl.java
0 → 100644
1 | +package com.huaheng.api.wcs.service.pickupErrorHandle; | |
2 | + | |
3 | +import com.huaheng.common.utils.StringUtils; | |
4 | +import com.huaheng.framework.web.domain.AjaxResult; | |
5 | +import com.huaheng.pc.task.taskHeader.domain.TaskHeader; | |
6 | +import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; | |
7 | +import org.springframework.beans.factory.annotation.Autowired; | |
8 | +import org.springframework.stereotype.Service; | |
9 | +import org.springframework.transaction.annotation.Transactional; | |
10 | + | |
11 | +@Service | |
12 | +public class PickupErrorHandleServiceImpl implements PickupErrorHandleService { | |
13 | + | |
14 | + | |
15 | + @Autowired | |
16 | + private TaskHeaderService taskHeaderService; | |
17 | + | |
18 | + | |
19 | + /** | |
20 | + * 取货错处理 | |
21 | + * 1、判断非空字段 | |
22 | + * 2、根据任务号查找任务 | |
23 | + * 3、修改该任务为取货错,过后处理 | |
24 | + * @param taskNo | |
25 | + * @return | |
26 | + */ | |
27 | + @Override | |
28 | + @Transactional | |
29 | + public AjaxResult PickupErrorHandle(String taskNo) { | |
30 | + //1、判断非空字段 | |
31 | + if(StringUtils.isEmpty(taskNo)){ | |
32 | + return AjaxResult.error("任务号为空"); | |
33 | + } | |
34 | + | |
35 | + //2、根据任务号查找任务 | |
36 | + TaskHeader taskHeader = taskHeaderService.getById(Integer.valueOf(taskNo)); | |
37 | + if(taskHeader == null){ | |
38 | + return AjaxResult.error("任务号错误,没有找到该任务"); | |
39 | + } | |
40 | + if(taskHeader.getStatus() == 100){ | |
41 | + return AjaxResult.error("任务已完成"); | |
42 | + } | |
43 | + | |
44 | + //3、修改该任务为取货错,过后处理 | |
45 | + taskHeader.setExceptionCode("取货错误"); | |
46 | + Boolean flag = taskHeaderService.updateById(taskHeader); | |
47 | + if(flag == false){ | |
48 | + return AjaxResult.error("修改任务失败,取货错处理失败"); | |
49 | + } | |
50 | + return AjaxResult.success("取货错处理成功"); | |
51 | + } | |
52 | +} | |
... | ... |
src/main/java/com/huaheng/api/wcs/service/stationInfo/StationInfoServiceImpl.java
... | ... | @@ -11,6 +11,11 @@ import com.huaheng.pc.config.address.service.AddressService; |
11 | 11 | import org.springframework.beans.factory.annotation.Autowired; |
12 | 12 | import org.springframework.stereotype.Service; |
13 | 13 | |
14 | +import java.util.ArrayList; | |
15 | +import java.util.HashMap; | |
16 | +import java.util.List; | |
17 | +import java.util.Map; | |
18 | + | |
14 | 19 | @Service |
15 | 20 | public class StationInfoServiceImpl implements StationInfoService { |
16 | 21 | |
... | ... | @@ -34,13 +39,15 @@ public class StationInfoServiceImpl implements StationInfoService { |
34 | 39 | } |
35 | 40 | |
36 | 41 | //2、实体转换 |
37 | - WcsTask wcsTask =new WcsTask(); | |
38 | - wcsTask.setStation(station); | |
42 | + Map<String , List> map =new HashMap<>(); | |
43 | + List list = new ArrayList(); | |
44 | + list.add(station); | |
45 | + map.put("port",list); | |
39 | 46 | |
40 | 47 | //3、发送数据 |
41 | 48 | String param="wcs"; |
42 | 49 | String url=addressService.selectAddress(param)+"StationInfo"; |
43 | - String JsonParam = JSON.toJSONString(wcsTask); | |
50 | + String JsonParam = JSON.toJSONString(map); | |
44 | 51 | String result = HttpUtils.bodypost(url, JsonParam); |
45 | 52 | if(StringUtils.isEmpty(result)){ |
46 | 53 | throw new ServiceException("接口地址错误"); |
... | ... |
src/main/java/com/huaheng/api/wcs/service/taskAssignService/TaskAssignServiceImpl.java
... | ... | @@ -9,6 +9,7 @@ import com.huaheng.api.wcs.domain.WcsTask; |
9 | 9 | import com.huaheng.common.exception.service.ServiceException; |
10 | 10 | import com.huaheng.common.utils.StringUtils; |
11 | 11 | import com.huaheng.common.utils.http.HttpUtils; |
12 | +import com.huaheng.common.utils.security.ShiroUtils; | |
12 | 13 | import com.huaheng.framework.web.domain.AjaxResult; |
13 | 14 | import com.huaheng.pc.config.address.service.AddressService; |
14 | 15 | import com.huaheng.pc.task.taskDetail.domain.TaskDetail; |
... | ... | @@ -89,7 +90,9 @@ public class TaskAssignServiceImpl implements TaskAssignService { |
89 | 90 | |
90 | 91 | //3、转换实体,初始化wcs任务实体 |
91 | 92 | WcsTask wcsTask = new WcsTask(); |
93 | +// wcsTask.setWarehouseCode(ShiroUtils.getWarehouseCode()); | |
92 | 94 | wcsTask.setTaskNo(taskHeader.getId().toString()); |
95 | + wcsTask.setWarehouseCode("XT0001"); | |
93 | 96 | wcsTask.setPreTaskNo("0"); |
94 | 97 | wcsTask.setTaskType(taskHeader.getTaskType().toString()); |
95 | 98 | wcsTask.setFromPort("1000"); |
... | ... |
src/main/java/com/huaheng/api/wcs/service/taskCancel/TaskCancelService.java
src/main/java/com/huaheng/api/wcs/service/taskCancel/TaskCancelServiceImpl.java
... | ... | @@ -34,13 +34,13 @@ public class TaskCancelServiceImpl implements TaskCancelService { |
34 | 34 | |
35 | 35 | |
36 | 36 | //2、转换实体 |
37 | - WcsTask wcsTask = new WcsTask(); | |
38 | - wcsTask.setTaskNo(id.toString()); | |
37 | +// WcsTask wcsTask = new WcsTask(); | |
38 | +// wcsTask.setTaskNo(id.toString()); | |
39 | 39 | |
40 | 40 | //3、发送数据 |
41 | 41 | String param="wcs"; |
42 | 42 | String url=addressService.selectAddress(param)+"TaskCancel"; |
43 | - String JsonParam = JSON.toJSONString(wcsTask); | |
43 | + String JsonParam = JSON.toJSONString(id.toString()); | |
44 | 44 | String result = HttpUtils.bodypost(url, JsonParam); |
45 | 45 | if(StringUtils.isEmpty(result)){ |
46 | 46 | throw new ServiceException("接口地址错误"); |
... | ... |
src/main/java/com/huaheng/api/wcs/service/taskFinish/TaskFinishServiceImpl.java
... | ... | @@ -3,6 +3,8 @@ package com.huaheng.api.wcs.service.taskFinish; |
3 | 3 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
4 | 4 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
5 | 5 | import com.huaheng.api.wcs.domain.TaskFinishDomain; |
6 | +import com.huaheng.api.wcs.service.emptyOutHandle.EmptyOutHandleService; | |
7 | +import com.huaheng.api.wcs.service.overrideHandle.OverrideHandleService; | |
6 | 8 | import com.huaheng.common.support.Convert; |
7 | 9 | import com.huaheng.common.utils.StringUtils; |
8 | 10 | import com.huaheng.framework.web.domain.AjaxResult; |
... | ... | @@ -16,6 +18,10 @@ public class TaskFinishServiceImpl implements TaskFinishService { |
16 | 18 | |
17 | 19 | @Autowired |
18 | 20 | private TaskHeaderService taskHeaderService; |
21 | + @Autowired | |
22 | + private EmptyOutHandleService emptyOutHandleService; | |
23 | + @Autowired | |
24 | + private OverrideHandleService overrideHandleService; | |
19 | 25 | |
20 | 26 | //任务完成 |
21 | 27 | @Override |
... | ... | @@ -24,22 +30,23 @@ public class TaskFinishServiceImpl implements TaskFinishService { |
24 | 30 | if(StringUtils.isEmpty(taskFinishDomain.getTaskNo())){ |
25 | 31 | return AjaxResult.error("任务号为空"); |
26 | 32 | } |
33 | + | |
34 | + //1、空出处理 | |
27 | 35 | if(taskFinishDomain.getIsEmptyOut() == 1){ |
28 | - LambdaQueryWrapper<TaskHeader> lam = Wrappers.lambdaQuery(); | |
29 | - lam.eq(TaskHeader::getId,Integer.valueOf(taskFinishDomain.getTaskNo())); | |
30 | - TaskHeader taskHeader = taskHeaderService.getOne(lam); | |
31 | - if(taskHeader == null){ | |
32 | - return AjaxResult.error("wms系统没有此任务号"); | |
33 | - } | |
34 | - if(StringUtils.isEmpty(taskHeader.getExceptionCode())) { | |
35 | - taskHeader.setExceptionCode("空托出库"); | |
36 | - Boolean flag = taskHeaderService.updateById(taskHeader); | |
37 | - if (flag == false) { | |
38 | - return AjaxResult.error("修改任务失败,空出处理失败"); | |
39 | - } | |
40 | - } | |
41 | - return AjaxResult.success("成功"); | |
36 | + ajaxResult = emptyOutHandleService.EmptyOutHandle(taskFinishDomain.getTaskNo()); | |
37 | + } | |
38 | + | |
39 | + //2、重入处理 | |
40 | + if(taskFinishDomain.getIsDoubleIn() == 1){ | |
41 | + ajaxResult = overrideHandleService.OverrideHandle(taskFinishDomain); | |
42 | 42 | } |
43 | + | |
44 | + //3、取货错 | |
45 | + if(taskFinishDomain.getIsForkError() == 1){ | |
46 | + | |
47 | + } | |
48 | + | |
49 | + //任务完成 | |
43 | 50 | try{ |
44 | 51 | ajaxResult=taskHeaderService.completeTaskByWMS(Convert.toIntArray(taskFinishDomain.getTaskNo())); |
45 | 52 | } catch (Exception e) { |
... | ... |
src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationService.java
... | ... | @@ -6,8 +6,11 @@ import com.huaheng.pc.receipt.receiptContainerDetail.domain.ReceiptContainerDeta |
6 | 6 | |
7 | 7 | public interface WarecellAllocationService { |
8 | 8 | |
9 | - //仓位分配 | |
10 | - AjaxResult WarecellAllocation(WcsTask wcsTask); | |
9 | + /**仓位分配*/ | |
10 | + AjaxResult warecellAllocation(WcsTask wcsTask); | |
11 | 11 | |
12 | 12 | String taskPositioning(ReceiptContainerDetail receiptContainerDetail); |
13 | + | |
14 | + //去向分配 | |
15 | + AjaxResult destinationAllocation(WcsTask wcsTask); | |
13 | 16 | } |
... | ... |
src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java
... | ... | @@ -2,7 +2,6 @@ package com.huaheng.api.wcs.service.warecellAllocation; |
2 | 2 | |
3 | 3 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
4 | 4 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
5 | -import com.huaheng.api.wcs.domain.WcsTask; | |
6 | 5 | import com.huaheng.common.exception.service.ServiceException; |
7 | 6 | import com.huaheng.common.utils.StringUtils; |
8 | 7 | import com.huaheng.common.utils.security.ShiroUtils; |
... | ... | @@ -31,7 +30,8 @@ import com.huaheng.pc.task.taskDetail.service.TaskDetailService; |
31 | 30 | import com.huaheng.pc.task.taskHeader.domain.TaskHeader; |
32 | 31 | import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; |
33 | 32 | import org.springframework.stereotype.Service; |
34 | - | |
33 | +import org.springframework.transaction.annotation.Transactional; | |
34 | +import com.huaheng.api.wcs.domain.WcsTask; | |
35 | 35 | import javax.annotation.Resource; |
36 | 36 | import java.util.ArrayList; |
37 | 37 | import java.util.List; |
... | ... | @@ -74,14 +74,15 @@ public class WarecellAllocationServiceImpl implements WarecellAllocationService |
74 | 74 | * @return |
75 | 75 | */ |
76 | 76 | @Override |
77 | - public AjaxResult WarecellAllocation(WcsTask wcsTask) { | |
77 | + @Transactional(rollbackFor = Exception.class) | |
78 | + public AjaxResult warecellAllocation(WcsTask wcsTask) { | |
78 | 79 | |
79 | 80 | //1、判断非空字段 |
80 | 81 | if(StringUtils.isEmpty(wcsTask.getTaskNo())){ |
81 | 82 | return AjaxResult.error("任务号为空"); |
82 | 83 | } |
83 | - if(StringUtils.isEmpty(wcsTask.getRoadWay())){ | |
84 | - return AjaxResult.error("巷道为空"); | |
84 | + if(StringUtils.isEmpty(wcsTask.getDestination())){ | |
85 | + return AjaxResult.error("目的为空"); | |
85 | 86 | } |
86 | 87 | if(StringUtils.isNull(wcsTask.getLength())){ |
87 | 88 | return AjaxResult.error("长为空"); |
... | ... | @@ -114,6 +115,7 @@ public class WarecellAllocationServiceImpl implements WarecellAllocationService |
114 | 115 | taskDetailLambda.eq(TaskDetail::getTaskId, wcsTask.getTaskNo()); |
115 | 116 | List<TaskDetail> taskDetailList = taskDetailService.list(taskDetailLambda); |
116 | 117 | |
118 | + /* 循环查询入库组盘明细*/ | |
117 | 119 | List<ReceiptContainerDetail> receiptContainerDetailList = new ArrayList<>(); |
118 | 120 | for (TaskDetail taskDetail : taskDetailList) { |
119 | 121 | receiptContainerDetailList.add(receiptContainerDetailService.getById(taskDetail.getAllocationId())); |
... | ... | @@ -121,13 +123,15 @@ public class WarecellAllocationServiceImpl implements WarecellAllocationService |
121 | 123 | //去重 |
122 | 124 | receiptContainerDetailList = receiptContainerDetailList.stream().distinct().collect(Collectors.toList()); |
123 | 125 | |
126 | + /* 循环入库组盘明细,重新分配库位*/ | |
124 | 127 | for (ReceiptContainerDetail receiptContainerDetail : receiptContainerDetailList) { |
125 | 128 | ReceiptContainerHeader receiptContainerHeader = receiptContainerHeaderService.getById(receiptContainerDetail.getReceiptContainerId()); |
126 | 129 | |
127 | 130 | String locatingRule = this.taskPositioning(receiptContainerDetail); |
128 | 131 | |
129 | 132 | LambdaQueryWrapper<FilterConfigDetail> filterConfigDetailLambda = Wrappers.lambdaQuery(); |
130 | - filterConfigDetailLambda.eq(FilterConfigDetail::getCode, locatingRule); | |
133 | + filterConfigDetailLambda.eq(FilterConfigDetail::getCode, locatingRule) | |
134 | + .eq(FilterConfigDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()); | |
131 | 135 | FilterConfigDetail filterConfigDetail = filterConfigDetailService.getOne(filterConfigDetailLambda); |
132 | 136 | String[] locatingRules = filterConfigDetail.getStatement().split("limit"); |
133 | 137 | |
... | ... | @@ -136,7 +140,7 @@ public class WarecellAllocationServiceImpl implements WarecellAllocationService |
136 | 140 | locationLambda.last(locatingRules[0]); |
137 | 141 | List<Location> locationList = locationService.list(locationLambda); |
138 | 142 | // locationList.stream().filter(location -> location.getLocationType().equals(locationTypeList.get(0))); |
139 | - locationCode = filter(locationList, locationTypeList, wcsTask.getRoadWay()); | |
143 | + locationCode = filter(locationList, locationTypeList, wcsTask.getDestination()); | |
140 | 144 | if (StringUtils.isEmpty(locationCode)){ |
141 | 145 | throw new ServiceException("没有库位可分配"); |
142 | 146 | } |
... | ... | @@ -155,13 +159,13 @@ public class WarecellAllocationServiceImpl implements WarecellAllocationService |
155 | 159 | |
156 | 160 | //把库位编码赋到该入库组盘头表下的所有明细 |
157 | 161 | LambdaQueryWrapper<ReceiptContainerDetail> lambda = Wrappers.lambdaQuery(); |
158 | - lambda.eq(ReceiptContainerDetail::getReceiptContainerId, receiptContainerHeader.getId()); | |
162 | + lambda.eq(ReceiptContainerDetail::getReceiptContainerId, receiptContainerHeader.getId()) | |
163 | + .eq(ReceiptContainerDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()); | |
159 | 164 | List<ReceiptContainerDetail> receiptContainerDetails = receiptContainerDetailService.list(lambda); |
160 | 165 | for (ReceiptContainerDetail receiptContainerDetail2: receiptContainerDetails) { |
161 | 166 | receiptContainerDetail2.setLocationCode(locationCode); |
162 | 167 | if (!receiptContainerDetailService.updateById(receiptContainerDetail2)){throw new ServiceException("更新库位编码到入库组盘明细");} |
163 | 168 | } |
164 | - | |
165 | 169 | } |
166 | 170 | |
167 | 171 | if (StringUtils.isNotEmpty(locationCode)){ |
... | ... | @@ -175,9 +179,7 @@ public class WarecellAllocationServiceImpl implements WarecellAllocationService |
175 | 179 | |
176 | 180 | taskHeader.setToLocation(locationCode); |
177 | 181 | if (!taskHeaderService.updateById(taskHeader)){throw new ServiceException("更新任务头表目标库位失败");} |
178 | - WcsTask wcsTaskResult = new WcsTask(); | |
179 | - wcsTaskResult.setToLocationCode(locationCode); | |
180 | - return AjaxResult.success(wcsTaskResult); | |
182 | + return AjaxResult.success(locationCode); | |
181 | 183 | } |
182 | 184 | |
183 | 185 | return AjaxResult.error("错误"); |
... | ... | @@ -233,7 +235,8 @@ public class WarecellAllocationServiceImpl implements WarecellAllocationService |
233 | 235 | .eq(ConfigValue::getRecordType, "入库首选项"); |
234 | 236 | ConfigValue configValue = configValueService.getOne(configValueLambda); |
235 | 237 | LambdaQueryWrapper<ReceiptPreference> receiptPreferenceLambda = Wrappers.lambdaQuery(); |
236 | - receiptPreferenceLambda.eq(ReceiptPreference::getCode, configValue.getValue()); | |
238 | + receiptPreferenceLambda.eq(ReceiptPreference::getCode, configValue.getValue()) | |
239 | + .eq(ReceiptPreference::getWarehouseCode, ShiroUtils.getWarehouseCode()); | |
237 | 240 | ReceiptPreference receiptPreference = receiptPreferenceService.getOne(receiptPreferenceLambda); |
238 | 241 | locatingRule = receiptPreferenceService.getOne(receiptPreferenceLambda).getLocationRule(); |
239 | 242 | } |
... | ... | @@ -247,4 +250,90 @@ public class WarecellAllocationServiceImpl implements WarecellAllocationService |
247 | 250 | |
248 | 251 | return locatingRule; |
249 | 252 | } |
250 | -} | |
253 | + | |
254 | + | |
255 | + /** | |
256 | + * 去向分配 | |
257 | + */ | |
258 | + @Override | |
259 | + public AjaxResult destinationAllocation(WcsTask wcsTask) { | |
260 | + | |
261 | + //1、判断非空字段 | |
262 | + if(StringUtils.isEmpty(wcsTask.getTaskNo())){ | |
263 | + return AjaxResult.error("任务号为空"); | |
264 | + } | |
265 | + if(StringUtils.isNull(wcsTask.getLength())){ | |
266 | + return AjaxResult.error("长为空"); | |
267 | + } | |
268 | + if(StringUtils.isNull(wcsTask.getWidth())){ | |
269 | + return AjaxResult.error("宽为空"); | |
270 | + } | |
271 | + if(StringUtils.isNull(wcsTask.getHeight())){ | |
272 | + return AjaxResult.error("高为空"); | |
273 | + } | |
274 | + if(StringUtils.isNull(wcsTask.getWeight())){ | |
275 | + return AjaxResult.error("重为空"); | |
276 | + } | |
277 | + | |
278 | + //查询满足条件的库位类型 | |
279 | + LambdaQueryWrapper<LocationType> lambdaQueryWrapper = Wrappers.lambdaQuery(); | |
280 | + lambdaQueryWrapper.gt(LocationType::getLength,wcsTask.getLength()) | |
281 | + .gt(LocationType::getWidth, wcsTask.getWidth()) | |
282 | + .gt(LocationType::getHeight, wcsTask.getHeight()) | |
283 | + .gt(LocationType::getMaxWeight, wcsTask.getWidth()); | |
284 | + List<LocationType> locationTypeList = locationTypeService.list(lambdaQueryWrapper); | |
285 | + | |
286 | + if (locationTypeList.isEmpty()){ | |
287 | + return AjaxResult.error("没有区域可分配"); | |
288 | + } | |
289 | + List<String> codeList = new ArrayList<>(); | |
290 | + for (LocationType locationType: locationTypeList) { | |
291 | + codeList.add(locationType.getCode()); | |
292 | + } | |
293 | + | |
294 | + //定位库位List | |
295 | + List<String> positioningLocationCodeList = null; | |
296 | + //查询任务明细 | |
297 | + LambdaQueryWrapper<TaskDetail> taskDetailLambda = Wrappers.lambdaQuery(); | |
298 | + taskDetailLambda.eq(TaskDetail::getTaskId, wcsTask.getTaskNo()); | |
299 | + List<TaskDetail> taskDetailList = taskDetailService.list(taskDetailLambda); | |
300 | + | |
301 | + /* 循环查询入库组盘明细*/ | |
302 | + List<ReceiptContainerDetail> receiptContainerDetailList = new ArrayList<>(); | |
303 | + for (TaskDetail taskDetail : taskDetailList) { | |
304 | + receiptContainerDetailList.add(receiptContainerDetailService.getById(taskDetail.getAllocationId())); | |
305 | + } | |
306 | + //去重 | |
307 | + receiptContainerDetailList = receiptContainerDetailList.stream().distinct().collect(Collectors.toList()); | |
308 | + | |
309 | + for (ReceiptContainerDetail receiptContainerDetail : receiptContainerDetailList) { | |
310 | + String locatingRule = this.taskPositioning(receiptContainerDetail); | |
311 | + | |
312 | + LambdaQueryWrapper<FilterConfigDetail> filterConfigDetailLambda = Wrappers.lambdaQuery(); | |
313 | + filterConfigDetailLambda.eq(FilterConfigDetail::getCode, locatingRule) | |
314 | + .eq(FilterConfigDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()); | |
315 | + FilterConfigDetail filterConfigDetail = filterConfigDetailService.getOne(filterConfigDetailLambda); | |
316 | + String[] locatingRules = filterConfigDetail.getStatement().split("limit"); | |
317 | + | |
318 | + //根据定位规则查询库位编码 | |
319 | + LambdaQueryWrapper<Location> locationLambda = Wrappers.lambdaQuery(); | |
320 | + locationLambda.last(locatingRules[0]); | |
321 | + List<Location> locationList = locationService.list(locationLambda); | |
322 | + List<String> locationCodeList = locationTypeList.stream().map(t-> t.getCode()).collect(Collectors.toList()); | |
323 | + List<Location> newLocation = locationList.stream().filter(t-> locationCodeList.contains(t.getLocationType())).collect(Collectors.toList()); | |
324 | + if (!newLocation.isEmpty()){ | |
325 | + positioningLocationCodeList.add(newLocation.get(0).getCode()); | |
326 | + } | |
327 | + | |
328 | + if (StringUtils.isEmpty(positioningLocationCodeList)){ | |
329 | + throw new ServiceException("没有区域可分配"); | |
330 | + } | |
331 | + } | |
332 | + | |
333 | + LambdaQueryWrapper<Location> locationLambdaQueryWrapper = Wrappers.lambdaQuery(); | |
334 | + locationLambdaQueryWrapper.eq(Location::getCode, positioningLocationCodeList.get(0)); | |
335 | + Location location = locationService.getOne(locationLambdaQueryWrapper); | |
336 | + String destinationArea = location.getRoadway(); | |
337 | + return AjaxResult.success(destinationArea); | |
338 | + } | |
339 | +} | |
251 | 340 | \ No newline at end of file |
... | ... |
src/main/java/com/huaheng/common/constant/QuantityConstant.java
src/main/java/com/huaheng/common/jasper/DocType.java
0 → 100644
src/main/java/com/huaheng/common/jasper/DocTypeUtil.java
0 → 100644
1 | +package com.huaheng.common.jasper; | |
2 | + | |
3 | + | |
4 | +/** | |
5 | + * 格式工具类 | |
6 | + * @author ricard | |
7 | + * @date 19/11/21 | |
8 | + * | |
9 | + */ | |
10 | +public class DocTypeUtil { | |
11 | + /** | |
12 | + * 默认类型PDF | |
13 | + * @param docType | |
14 | + * @return | |
15 | + * | |
16 | + */ | |
17 | + | |
18 | + public static DocType getEnumDocType(String docType){ | |
19 | + //默认PDF | |
20 | + DocType type = DocType.PDF; | |
21 | + docType = docType.toUpperCase(); | |
22 | + | |
23 | + if(docType.equals("DOC")){ | |
24 | + type =DocType.DOC; | |
25 | + } else if (docType.equals("XLS")) { | |
26 | + type = DocType.XLS; | |
27 | + } else if(docType.equals("XLSX")) { | |
28 | + type = DocType.XLSX; | |
29 | + }else if (docType.equals("XML")) { | |
30 | + type = DocType.XML; | |
31 | + } else if (docType.equals("RTF")) { | |
32 | + type = DocType.RTF; | |
33 | + } else if (docType.equals("CSV")) { | |
34 | + type = DocType.CSV; | |
35 | + } else if (docType.equals("HTML")) { | |
36 | + type = DocType.HTML; | |
37 | + } else if (docType.equals("TXT")) { | |
38 | + type = DocType.TXT; | |
39 | + } | |
40 | + return type; | |
41 | + } | |
42 | +} | |
... | ... |
src/main/java/com/huaheng/common/jasper/JasperreportUtils.java
0 → 100644
1 | +package com.huaheng.common.jasper; | |
2 | + | |
3 | +import net.sf.jasperreports.engine.*; | |
4 | +import net.sf.jasperreports.engine.export.*; | |
5 | +import net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter; | |
6 | +import net.sf.jasperreports.engine.fill.JRFileVirtualizer; | |
7 | +import net.sf.jasperreports.export.*; | |
8 | +import org.slf4j.Logger; | |
9 | +import org.slf4j.LoggerFactory; | |
10 | + | |
11 | +import javax.servlet.ServletException; | |
12 | +import javax.servlet.ServletOutputStream; | |
13 | +import javax.servlet.http.HttpServletRequest; | |
14 | +import javax.servlet.http.HttpServletResponse; | |
15 | +import javax.servlet.http.HttpSession; | |
16 | +import java.io.*; | |
17 | +import java.lang.reflect.Field; | |
18 | +import java.math.BigDecimal; | |
19 | +import java.net.URLEncoder; | |
20 | +import java.sql.Connection; | |
21 | +import java.sql.SQLException; | |
22 | +import java.text.DecimalFormat; | |
23 | +import java.text.SimpleDateFormat; | |
24 | +import java.util.Date; | |
25 | +import java.util.List; | |
26 | +import java.util.Map; | |
27 | + | |
28 | +/** | |
29 | + * 报表工具类 | |
30 | + * @author ricard | |
31 | + * @date 19/11/21 | |
32 | + * | |
33 | + */ | |
34 | +public class JasperreportUtils { | |
35 | + | |
36 | + | |
37 | + | |
38 | + | |
39 | + private static final Logger LOGGER = LoggerFactory.getLogger(JasperreportUtils.class); | |
40 | + private HttpServletRequest request; | |
41 | + private HttpServletResponse response; | |
42 | + private HttpSession session; | |
43 | + | |
44 | + public JasperreportUtils(HttpServletRequest request, HttpServletResponse response, HttpSession session){ | |
45 | + super(); | |
46 | + this.request = request; | |
47 | + this.response =response; | |
48 | + this.session =request.getSession(); | |
49 | + } | |
50 | + | |
51 | + | |
52 | + | |
53 | + /** | |
54 | + * datasource与parameters填充报表 | |
55 | + * | |
56 | + * @param jasperPath | |
57 | + * @param dataSource | |
58 | + * @param parameters | |
59 | + * @return | |
60 | + * @throws JRException | |
61 | + */ | |
62 | + public JasperPrint getJasperPrint(String jasperPath, Map<String, Object> parameters, JRDataSource dataSource) | |
63 | + throws JRException { | |
64 | + | |
65 | + JasperPrint jasperPrint = JasperFillManager.fillReport(jasperPath, parameters, dataSource); | |
66 | + return jasperPrint; | |
67 | + } | |
68 | + | |
69 | + /** | |
70 | + * connection与parameters填充报表 | |
71 | + * | |
72 | + * @param jasperPath | |
73 | + * @param conn | |
74 | + * @param parameters | |
75 | + * @return | |
76 | + * @throws JRException | |
77 | + */ | |
78 | + public JasperPrint getJasperPrint(String jasperPath, Map<String, Object> parameters, Connection conn) | |
79 | + throws JRException { | |
80 | + | |
81 | + JasperPrint jasperPrint = JasperFillManager.fillReport(jasperPath, parameters, conn); | |
82 | + return jasperPrint; | |
83 | + } | |
84 | + | |
85 | + /** | |
86 | + * 传入list获取jasperPrint | |
87 | + * | |
88 | + * @param jasperPath | |
89 | + * @param parameters | |
90 | + * @param list | |
91 | + * @return | |
92 | + * @throws JRException | |
93 | + */ | |
94 | +// public JasperPrint getJasperPrintWithBeanList(String jasperPath, Map<String, Object> parameters, List<?> list) | |
95 | +// throws JRException,SQLException { | |
96 | +// JRDataSource jrDataSource = null; | |
97 | +// JasperPrint jasperPrint =new JasperPrint(); | |
98 | +// if(null != list && list.size()> 0) { | |
99 | +// jrDataSource = new JRBeanCollectionDataSource(list); | |
100 | +// jasperPrint = JasperFillManager.fillReport(jasperPath, parameters, jrDataSource); | |
101 | +// }else { | |
102 | +// jasperPrint = JasperFillManager.fillReport(jasperPath, parameters, connection); | |
103 | +// } | |
104 | +// return jasperPrint; | |
105 | +// } | |
106 | + | |
107 | + | |
108 | + | |
109 | + /** | |
110 | + * 获得相应类型的Content type | |
111 | + * | |
112 | + * @param docType | |
113 | + * @return | |
114 | + */ | |
115 | + public String getContentType(DocType docType) { | |
116 | + String contentType = "text/html"; | |
117 | + switch (docType) { | |
118 | + case PDF: | |
119 | + contentType = "application/pdf"; | |
120 | + break; | |
121 | + case XLS: | |
122 | + contentType = "application/vnd.ms-excel"; | |
123 | + break; | |
124 | + case XLSX: | |
125 | + contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; | |
126 | + break; | |
127 | + case XML: | |
128 | + contentType = "text/xml"; | |
129 | + break; | |
130 | + case RTF: | |
131 | + contentType = "application/rtf"; | |
132 | + break; | |
133 | + case CSV: | |
134 | + contentType = "text/plain"; | |
135 | + break; | |
136 | + case DOC: | |
137 | + contentType = "application/msword"; | |
138 | + break; | |
139 | + } | |
140 | + return contentType; | |
141 | + } | |
142 | + | |
143 | + /** | |
144 | + * jrxml文件 编译为 jasper文件 | |
145 | + * | |
146 | + * @param jrxmlPath | |
147 | + * @param jasperPath | |
148 | + * @throws JRException | |
149 | + */ | |
150 | + public void jrxmlToJsper(String jrxmlPath, String jasperPath) throws JRException { | |
151 | + | |
152 | + JasperCompileManager.compileReportToFile(jrxmlPath, jasperPath); | |
153 | + | |
154 | + } | |
155 | + | |
156 | + | |
157 | + /** | |
158 | + * 生成html文件 | |
159 | + * @param response | |
160 | + * @param connection | |
161 | + * @param jasperPath | |
162 | + * @param fileName | |
163 | + * @param parameters | |
164 | + * @return | |
165 | + */ | |
166 | + public String createHtml(HttpServletResponse response, Connection connection, String jasperPath, String fileName, | |
167 | + Map<String, Object> parameters, String folder) { | |
168 | + SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); | |
169 | + String dpath = sdf.format(new Date()); | |
170 | + String path = "D:"+"/reportHtml" + folder + "/" + dpath; | |
171 | + File file = new File(path); | |
172 | + if (!file.exists()) { | |
173 | + file.mkdirs(); | |
174 | + } | |
175 | + String htmlFilePath = path + "/" + fileName; | |
176 | + try { | |
177 | + | |
178 | + JasperPrint jasperPrint = this.getJasperPrint(jasperPath,parameters,connection); | |
179 | + JasperExportManager.exportReportToHtmlFile(jasperPrint, htmlFilePath); | |
180 | + | |
181 | + } catch (Exception ex) { | |
182 | + LOGGER.error("生成html文件错误"+ex.getMessage(),ex); | |
183 | + } | |
184 | + return folder + "/" + dpath + "/" + fileName; | |
185 | + } | |
186 | + | |
187 | + /** | |
188 | + * 传入类型,获取输出器 | |
189 | + * | |
190 | + * @param docType | |
191 | + * @return | |
192 | + */ | |
193 | + @SuppressWarnings("deprecation") | |
194 | + public JRAbstractExporter getJRExporter(DocType docType) { | |
195 | + JRAbstractExporter exporter = null; | |
196 | + switch (docType) { | |
197 | + case PDF: | |
198 | + exporter = new JRPdfExporter(); | |
199 | + break; | |
200 | + case HTML: | |
201 | + exporter = new HtmlExporter(); | |
202 | + break; | |
203 | + case XLS: | |
204 | + exporter = new JRXlsExporter(); | |
205 | + break; | |
206 | + case XLSX: | |
207 | + exporter = new JRXlsxExporter(); | |
208 | + break; | |
209 | + case XML: | |
210 | + exporter = new JRXmlExporter(); | |
211 | + break; | |
212 | + case RTF: | |
213 | + exporter = new JRRtfExporter(); | |
214 | + break; | |
215 | + case CSV: | |
216 | + exporter = new JRCsvExporter(); | |
217 | + break; | |
218 | + case DOC: | |
219 | + exporter = new JRRtfExporter(); | |
220 | + break; | |
221 | + case TXT: | |
222 | + exporter = new JRTextExporter(); | |
223 | + break; | |
224 | + } | |
225 | + return exporter; | |
226 | + } | |
227 | + | |
228 | + | |
229 | + /** | |
230 | + * 生成不同格式报表文档(带缓存) | |
231 | + * | |
232 | + * @param docType | |
233 | + * 文档类型 | |
234 | + * @param jasperPath | |
235 | + */ | |
236 | + @SuppressWarnings("deprecation") | |
237 | + public void createExportDocument(DocType docType, String jasperPath, Map<String, Object> parameters, | |
238 | + String fileName,Connection connection) throws JRException, IOException, ServletException, SQLException { | |
239 | + | |
240 | + //1、传入类型,获取输出器 | |
241 | + JRAbstractExporter exporter = getJRExporter(docType); | |
242 | + | |
243 | + // 2、获取后缀 | |
244 | + String ext = docType.toString().toLowerCase(); | |
245 | + | |
246 | + if (!fileName.toLowerCase().endsWith(ext)) { | |
247 | + fileName += "." + ext; | |
248 | + } | |
249 | + | |
250 | + | |
251 | + // 3、判断资源类型 | |
252 | + if (ext.equals("xls")) { | |
253 | + SimpleXlsReportConfiguration configuration = new SimpleXlsReportConfiguration(); | |
254 | + // 删除记录最下面的空行 | |
255 | + configuration.setRemoveEmptySpaceBetweenRows(Boolean.TRUE); | |
256 | + // 一页一个sheet | |
257 | + configuration.setOnePagePerSheet(Boolean.FALSE); | |
258 | + // 显示边框 背景白色 | |
259 | + configuration.setWhitePageBackground(Boolean.FALSE); | |
260 | + exporter.setConfiguration(configuration); | |
261 | + } | |
262 | + if(ext.equals("xlsx")) { | |
263 | + SimpleXlsxReportConfiguration configuration = new SimpleXlsxReportConfiguration(); | |
264 | + configuration.setRemoveEmptySpaceBetweenRows(Boolean.TRUE); | |
265 | + configuration.setRemoveEmptySpaceBetweenColumns(Boolean.TRUE); | |
266 | + configuration.setWhitePageBackground(Boolean.FALSE); | |
267 | + //自动选择格式 | |
268 | + configuration.setDetectCellType(Boolean.TRUE); | |
269 | + exporter.setConfiguration(configuration); | |
270 | + } | |
271 | + if (ext.equals("txt")) { | |
272 | + SimpleTextReportConfiguration configuration = new SimpleTextReportConfiguration(); | |
273 | + configuration.setCharWidth((float)8); | |
274 | + configuration.setCharHeight((float)15); | |
275 | + exporter.setConfiguration(configuration); | |
276 | + } | |
277 | + | |
278 | + //4、设置格式和头 | |
279 | + response.setContentType(getContentType(docType)); | |
280 | + response.setHeader("Content-Disposition", | |
281 | + "attachment; filename*=UTF-8''" + URLEncoder.encode(fileName, "UTF-8")); | |
282 | + | |
283 | + //5、加缓存 | |
284 | + JRFileVirtualizer virtualizer = new JRFileVirtualizer(2, "D:/temp"); | |
285 | + parameters.put(JRParameter.REPORT_VIRTUALIZER, virtualizer); | |
286 | + virtualizer.setReadOnly(true); | |
287 | + | |
288 | + //6、连接数据库获取jasperPrint | |
289 | + exporter.setExporterInput(new SimpleExporterInput(getJasperPrint(jasperPath, parameters, connection))); | |
290 | + /*exporter.setParameter(JRExporterParameter.JASPER_PRINT, | |
291 | + getJasperPrintWithBeanList(jasperPath, parameters, list));*/ | |
292 | + | |
293 | + OutputStream outStream = null; | |
294 | + PrintWriter outWriter = null; | |
295 | + | |
296 | + // 7、解决中文乱码问题 | |
297 | + response.setCharacterEncoding("UTF-8"); | |
298 | + if (ext.equals("csv") || ext.equals("doc") || ext.equals("rtf") || ext.equals("txt")) { | |
299 | + outWriter = response.getWriter(); | |
300 | + SimpleWriterExporterOutput outPut = new SimpleWriterExporterOutput(outWriter); | |
301 | + exporter.setExporterOutput(outPut); | |
302 | + //exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, outWriter); | |
303 | + } else { | |
304 | + if(ext.equals("xml")) { | |
305 | + outWriter = response.getWriter(); | |
306 | + XmlExporterOutput outPut = new SimpleXmlExporterOutput(outWriter); | |
307 | + exporter.setExporterOutput(outPut); | |
308 | + }else if(ext.equals("html")){ | |
309 | + outWriter = response.getWriter(); | |
310 | + HtmlExporterOutput outPut = new SimpleHtmlExporterOutput(outWriter); | |
311 | + exporter.setExporterOutput(outPut); | |
312 | + }else { | |
313 | + outStream = response.getOutputStream(); | |
314 | + exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outStream)); | |
315 | + } | |
316 | + } | |
317 | + try { | |
318 | + exporter.exportReport(); | |
319 | + virtualizer.cleanup(); | |
320 | + } catch (JRException e) { | |
321 | + throw new ServletException(e); | |
322 | + } finally { | |
323 | + if (outStream != null) { | |
324 | + try { | |
325 | + outStream.close(); | |
326 | + } catch (IOException ex) { | |
327 | + } | |
328 | + } | |
329 | + if(outWriter != null) { | |
330 | + outWriter.close(); | |
331 | + } | |
332 | + } | |
333 | + } | |
334 | + | |
335 | + | |
336 | + /** | |
337 | + * 输出以分页的形式输出html | |
338 | + * @param jasperPrint | |
339 | + * @param pageStr | |
340 | + * @throws JRException | |
341 | + * @throws IOException | |
342 | + */ | |
343 | + | |
344 | + public void createHtmlByPage(JasperPrint jasperPrint,String pageStr) throws JRException, IOException { | |
345 | + int pageIndex = 0; | |
346 | + int lastPageIndex = 0; | |
347 | + | |
348 | + HtmlExporter exporter = new HtmlExporter(); | |
349 | + if(null != jasperPrint.getPages()) { | |
350 | + lastPageIndex = jasperPrint.getPages().size() - 1; | |
351 | + } | |
352 | + | |
353 | + if(null == pageStr) { | |
354 | + pageStr = "0"; | |
355 | + } | |
356 | + try { | |
357 | + pageIndex = Integer.valueOf(pageStr); | |
358 | + if(pageIndex > 0) { | |
359 | + pageIndex = pageIndex -1 ; | |
360 | + } | |
361 | + } catch (Exception e) { | |
362 | + // 如果得到的非数字字符串 | |
363 | + if("lastPage".equals(pageStr)) { | |
364 | + pageIndex = lastPageIndex; | |
365 | + } | |
366 | + } | |
367 | + | |
368 | + if (pageIndex < 0) { | |
369 | + pageIndex = 0; | |
370 | + } | |
371 | + if (pageIndex > lastPageIndex) { | |
372 | + pageIndex = lastPageIndex; | |
373 | + } | |
374 | + response.setCharacterEncoding("UTF-8"); | |
375 | + try { | |
376 | + PrintWriter out = response.getWriter(); | |
377 | + exporter.setExporterInput(new SimpleExporterInput(jasperPrint)); | |
378 | + | |
379 | + SimpleHtmlReportConfiguration configuration = new SimpleHtmlReportConfiguration(); | |
380 | + configuration.setPageIndex(pageIndex); | |
381 | + exporter.setConfiguration(configuration); | |
382 | + //exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE); | |
383 | + | |
384 | + HtmlExporterOutput outPut = new SimpleHtmlExporterOutput(out); | |
385 | + exporter.setExporterOutput(outPut); | |
386 | + | |
387 | + exporter.exportReport(); | |
388 | + } catch (Exception e) { | |
389 | + | |
390 | + e.printStackTrace(); | |
391 | + } | |
392 | + } | |
393 | + | |
394 | + | |
395 | + /** | |
396 | + * 批量打印pdf文件 | |
397 | + */ | |
398 | + public void exportBatchPdf(List<JasperPrint> jasperPrintList,String fileName) { | |
399 | + | |
400 | + JRPdfExporter exporter = new JRPdfExporter(); | |
401 | + try { | |
402 | + /** | |
403 | + * 注入打印模板 | |
404 | + */ | |
405 | + exporter.setExporterInput(SimpleExporterInput.getInstance(jasperPrintList)); | |
406 | + | |
407 | + OutputStream outStream = null; | |
408 | + | |
409 | + response.setContentType(getContentType(DocType.PDF)); | |
410 | + response.setHeader("Content-Disposition", | |
411 | + "attachment; filename*=UTF-8''" + URLEncoder.encode(fileName, "UTF-8")); | |
412 | + outStream = response.getOutputStream(); | |
413 | + | |
414 | + exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outStream)); | |
415 | + //配置项 | |
416 | + SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration(); | |
417 | + // 是否批量打印 | |
418 | + configuration.setCreatingBatchModeBookmarks(true); | |
419 | + // 是否加密 | |
420 | + configuration.setEncrypted(false); | |
421 | + exporter.setConfiguration(configuration); | |
422 | + | |
423 | + exporter.exportReport(); | |
424 | + } catch (Exception e) { | |
425 | + e.printStackTrace(); | |
426 | + } | |
427 | + | |
428 | + } | |
429 | + | |
430 | + | |
431 | + | |
432 | + /** | |
433 | + * 千分位格式化数据 保留两位小数,且 ‘0 ’ 转为 ‘--’ | |
434 | + * | |
435 | + * @param obj | |
436 | + * @param fieldNames | |
437 | + * 需转化的属性 | |
438 | + * @return | |
439 | + */ | |
440 | + public Object toFormatNumber(Object obj, String[] fieldNames) { | |
441 | + Class clazz = (Class) obj.getClass(); | |
442 | + Field[] fs = clazz.getDeclaredFields(); | |
443 | + for (int i = 0; i < fs.length; i++) { | |
444 | + Field f = fs[i]; | |
445 | + // 设置些属性是可以访问的 | |
446 | + f.setAccessible(true); | |
447 | + String type = f.getType().toString(); | |
448 | + Object val = null; | |
449 | + | |
450 | + try { | |
451 | + for (String str : fieldNames) { | |
452 | + if (f.getName() == str) { | |
453 | + val = f.get(obj); | |
454 | + } | |
455 | + } | |
456 | + if (null != val) { | |
457 | + if (type.endsWith("String")) { | |
458 | + if (val.equals("0")) { | |
459 | + f.set(obj, "--"); | |
460 | + } else { | |
461 | + /* | |
462 | + * ; BigDecimal str=new BigDecimal((String) val); DecimalFormat df=new | |
463 | + * DecimalFormat(",###,##0.00"); | |
464 | + */ // 保留两位小数 | |
465 | + f.set(obj, this.toNumeber((String) val)); | |
466 | + } | |
467 | + | |
468 | + } else if (type.endsWith("int") || type.endsWith("Integer")) { | |
469 | + // System.out.println(f.getType()+"\t"); | |
470 | + } else { | |
471 | + // System.out.println(f.getType()+"\t"); | |
472 | + } | |
473 | + } | |
474 | + | |
475 | + } catch (Exception ex) { | |
476 | + LOGGER.error("千分位格式化数据错误"+ex.getMessage(), ex); | |
477 | + } | |
478 | + } | |
479 | + return obj; | |
480 | + } | |
481 | + | |
482 | + /** | |
483 | + * 转为万元保留小数点后两位 | |
484 | + * | |
485 | + * @param value | |
486 | + * @return | |
487 | + */ | |
488 | + private String toNumeber(String value) { | |
489 | + Double number = Double.valueOf(value) / 10000.00; | |
490 | + BigDecimal str = new BigDecimal(number); | |
491 | + DecimalFormat df = new DecimalFormat(",###,##0.00"); | |
492 | + | |
493 | + return df.format(str); | |
494 | + } | |
495 | + | |
496 | + | |
497 | +} | |
... | ... |
src/main/java/com/huaheng/framework/config/SwaggerConfig.java
... | ... | @@ -36,7 +36,7 @@ public class SwaggerConfig |
36 | 36 | .apiInfo(apiInfo()) |
37 | 37 | .select() |
38 | 38 | // 指定当前包路径 |
39 | - .apis(RequestHandlerSelectors.basePackage("com.huaheng.pc")) | |
39 | + .apis(RequestHandlerSelectors.basePackage("com.huaheng.api")) | |
40 | 40 | // 扫描所有 .apis(RequestHandlerSelectors.any()) |
41 | 41 | .paths(PathSelectors.any()) |
42 | 42 | .build(); |
... | ... |
src/main/java/com/huaheng/pc/config/FilterConfigHeader/service/FilterConfigHeaderService.java
... | ... | @@ -9,6 +9,7 @@ import com.huaheng.pc.config.FilterConfigDetail.mapper.FilterConfigDetailMapper; |
9 | 9 | import com.huaheng.pc.config.FilterConfigHeader.domain.FilterConfigHeader; |
10 | 10 | import com.huaheng.pc.config.FilterConfigHeader.mapper.FilterConfigHeaderMapper; |
11 | 11 | import org.springframework.stereotype.Service; |
12 | +import org.springframework.transaction.annotation.Transactional; | |
12 | 13 | |
13 | 14 | import javax.annotation.Resource; |
14 | 15 | import java.util.List; |
... | ... | @@ -34,6 +35,7 @@ public class FilterConfigHeaderService extends ServiceImpl<FilterConfigHeaderMap |
34 | 35 | |
35 | 36 | |
36 | 37 | //复制规则配置 |
38 | + @Transactional | |
37 | 39 | public Boolean filterConfigCopy(String code,String newCode){ |
38 | 40 | int i = 0; |
39 | 41 | //复制规则配置主表 |
... | ... |
src/main/java/com/huaheng/pc/config/address/domain/Address.java
... | ... | @@ -33,6 +33,13 @@ public class Address implements Serializable { |
33 | 33 | private String warehouseCode; |
34 | 34 | |
35 | 35 | /** |
36 | + * 编号 | |
37 | + */ | |
38 | + @TableField(value = "number") | |
39 | + @ApiModelProperty(value="编号") | |
40 | + private Integer number; | |
41 | + | |
42 | + /** | |
36 | 43 | * 参数 |
37 | 44 | */ |
38 | 45 | @TableField(value = "param") |
... | ... | @@ -62,6 +69,14 @@ public class Address implements Serializable { |
62 | 69 | this.warehouseCode = warehouseCode; |
63 | 70 | } |
64 | 71 | |
72 | + public Integer getNumber() { | |
73 | + return number; | |
74 | + } | |
75 | + | |
76 | + public void setNumber(Integer number) { | |
77 | + this.number = number; | |
78 | + } | |
79 | + | |
65 | 80 | public String getParam() { |
66 | 81 | return param; |
67 | 82 | } |
... | ... |
src/main/java/com/huaheng/pc/config/address/service/AddressServiceImpl.java
... | ... | @@ -10,6 +10,7 @@ import com.huaheng.common.utils.security.ShiroUtils; |
10 | 10 | import com.huaheng.pc.config.address.domain.Address; |
11 | 11 | import com.huaheng.pc.config.address.mapper.AddressMapper; |
12 | 12 | import org.springframework.stereotype.Service; |
13 | +import org.springframework.transaction.annotation.Transactional; | |
13 | 14 | |
14 | 15 | import java.util.List; |
15 | 16 | |
... | ... | @@ -42,6 +43,7 @@ public class AddressServiceImpl extends ServiceImpl<AddressMapper, Address> impl |
42 | 43 | * @return 是否复制成功 |
43 | 44 | */ |
44 | 45 | @Override |
46 | + @Transactional | |
45 | 47 | public Boolean addressCopy(String warehouseCode, String newWarehouseCode) { |
46 | 48 | log.trace("开始复制地址表"); |
47 | 49 | LambdaQueryWrapper<Address> lambdaQueryWrapper = Wrappers.lambdaQuery(); |
... | ... |
src/main/java/com/huaheng/pc/config/bom/controller/BomHeaderController.java
... | ... | @@ -72,7 +72,7 @@ public class BomHeaderController extends BaseController { |
72 | 72 | lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), BomHeader::getCreated, createdBegin) |
73 | 73 | .lt(StringUtils.isNotEmpty(createdEnd), BomHeader::getCreated, createdEnd) |
74 | 74 | .eq(StringUtils.isNotEmpty(bomHeader.getMaterialCode()), BomHeader::getMaterialCode, bomHeader.getMaterialCode()) |
75 | - .eq(StringUtils.isNotEmpty(bomHeader.getMaterialName()), BomHeader::getMaterialName, bomHeader.getMaterialName()) | |
75 | + .like(StringUtils.isNotEmpty(bomHeader.getMaterialName()), BomHeader::getMaterialName, bomHeader.getMaterialName()) | |
76 | 76 | .eq(StringUtils.isNotEmpty(bomHeader.getCompanyCode()), BomHeader::getCompanyCode, bomHeader.getCompanyCode()); |
77 | 77 | |
78 | 78 | if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ |
... | ... |
src/main/java/com/huaheng/pc/config/carrier/controller/CarrierController.java
... | ... | @@ -64,7 +64,7 @@ public class CarrierController extends BaseController { |
64 | 64 | lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), Carrier::getCreated, createdBegin) |
65 | 65 | .lt(StringUtils.isNotEmpty(createdEnd), Carrier::getCreated, createdEnd) |
66 | 66 | .eq(StringUtils.isNotEmpty(carrier.getCode()), Carrier::getCode, carrier.getCode()) |
67 | - .eq(StringUtils.isNotEmpty(carrier.getName()), Carrier::getName, carrier.getName()) | |
67 | + .like(StringUtils.isNotEmpty(carrier.getName()), Carrier::getName, carrier.getName()) | |
68 | 68 | .eq(Carrier::getWarehouseCode, ShiroUtils.getWarehouseCode()); |
69 | 69 | |
70 | 70 | if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ |
... | ... |
src/main/java/com/huaheng/pc/config/company/service/CompanyServiceImpl.java
... | ... | @@ -87,11 +87,11 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl |
87 | 87 | warehouseCompanyService.remove(lambdaQueryWrapper.eq(WarehouseCompany::getCompanyId, company.getId())); |
88 | 88 | //添加货主仓库关联 |
89 | 89 | WarehouseCompany record = new WarehouseCompany(); |
90 | - for (int i=0; i<warehouse.length-1; i++) | |
90 | + for (int i=0; i<warehouse.length; i++) | |
91 | 91 | { |
92 | 92 | record.setCompanyId(company.getId()); |
93 | 93 | record.setCompanyCode(company.getCode()); |
94 | - record.setWarehouseCode(warehouse[i+1]); | |
94 | + record.setWarehouseCode(warehouse[i]); | |
95 | 95 | warehouseCompanyService.save(record); |
96 | 96 | } |
97 | 97 | //更新货主 |
... | ... |
src/main/java/com/huaheng/pc/config/configValue/service/ConfigValueService.java
... | ... | @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
6 | 6 | import com.huaheng.pc.config.configValue.domain.ConfigValue; |
7 | 7 | import com.huaheng.pc.config.configValue.mapper.ConfigValueMapper; |
8 | 8 | import org.springframework.stereotype.Service; |
9 | +import org.springframework.transaction.annotation.Transactional; | |
9 | 10 | |
10 | 11 | import java.util.List; |
11 | 12 | @Service |
... | ... | @@ -17,6 +18,7 @@ public class ConfigValueService extends ServiceImpl<ConfigValueMapper, ConfigVal |
17 | 18 | * @param newWarehouseCode 新仓库编码 |
18 | 19 | * @return 是否复制成功 |
19 | 20 | */ |
21 | + @Transactional | |
20 | 22 | public boolean configValueCopy(String warehouseCode, String newWarehouseCode){ |
21 | 23 | log.trace("开始复制系统参数配置表"); |
22 | 24 | LambdaQueryWrapper<ConfigValue> lambdaQueryWrapper = Wrappers.lambdaQuery(); |
... | ... |
src/main/java/com/huaheng/pc/config/container/controller/ContainerController.java
... | ... | @@ -17,6 +17,7 @@ import com.huaheng.framework.web.page.TableDataInfo; |
17 | 17 | import com.huaheng.framework.web.page.TableSupport; |
18 | 18 | import com.huaheng.pc.config.container.domain.Container; |
19 | 19 | import com.huaheng.pc.config.container.service.ContainerService; |
20 | +import com.huaheng.pc.inventory.inventoryTransaction.domain.InventoryTransaction; | |
20 | 21 | import io.swagger.annotations.Api; |
21 | 22 | import io.swagger.annotations.ApiOperation; |
22 | 23 | import io.swagger.annotations.ApiParam; |
... | ... | @@ -27,6 +28,7 @@ import org.springframework.web.bind.annotation.*; |
27 | 28 | import org.springframework.web.multipart.MultipartFile; |
28 | 29 | |
29 | 30 | import javax.annotation.Resource; |
31 | +import java.util.ArrayList; | |
30 | 32 | import java.util.List; |
31 | 33 | |
32 | 34 | @Api(tags={"容器操作类"}) |
... | ... | @@ -175,4 +177,21 @@ public class ContainerController extends BaseController { |
175 | 177 | ExcelUtil<Container> util = new ExcelUtil<>(Container.class); |
176 | 178 | return util.importTemplateExcel("容器"); |
177 | 179 | } |
180 | + | |
181 | + | |
182 | + @RequiresPermissions("iconfig:container:print") | |
183 | + @Log(title = "容器条码", operating = "容器条码打印", action = BusinessType.OTHER) | |
184 | + @GetMapping("/print/{ids}") | |
185 | + public String print(@PathVariable("ids") Integer[] ids, ModelMap mmap) | |
186 | + { | |
187 | + List<Container> list = new ArrayList<>(); | |
188 | + for(Integer id:ids){ | |
189 | + if(id != null) { | |
190 | + Container container = containerService.getById(id); | |
191 | + list.add(container); | |
192 | + } | |
193 | + mmap.put("container", list); | |
194 | + } | |
195 | + return prefix + "/print"; | |
196 | + } | |
178 | 197 | } |
... | ... |
src/main/java/com/huaheng/pc/config/container/domain/Container.java
... | ... | @@ -65,6 +65,15 @@ public class Container implements Serializable { |
65 | 65 | @Excel(name = "容器类型") |
66 | 66 | private String containerType; |
67 | 67 | |
68 | + | |
69 | + /** | |
70 | + * 容器类型 | |
71 | + */ | |
72 | + @TableField(value = "goodsShelfNo") | |
73 | + @ApiModelProperty(value="AGV货架编码") | |
74 | + @Excel(name = "AGV货架编码") | |
75 | + private String goodsShelfNo; | |
76 | + | |
68 | 77 | /** |
69 | 78 | * 创建时间 |
70 | 79 | */ |
... | ... | @@ -199,6 +208,8 @@ public class Container implements Serializable { |
199 | 208 | |
200 | 209 | public static final String COL_CONTAINERTYPE = "containerType"; |
201 | 210 | |
211 | + public static final String COL_GOODSSHELFNO = "goodsShelfNo"; | |
212 | + | |
202 | 213 | public static final String COL_CREATED = "created"; |
203 | 214 | |
204 | 215 | public static final String COL_CREATEDBY = "createdBy"; |
... | ... | @@ -245,6 +256,7 @@ public class Container implements Serializable { |
245 | 256 | sb.append(", warehouseCode=").append(warehouseCode); |
246 | 257 | sb.append(", companyCode=").append(companyCode); |
247 | 258 | sb.append(", containerType=").append(containerType); |
259 | + sb.append(", goodsShelfNo=").append(goodsShelfNo); | |
248 | 260 | sb.append(", created=").append(created); |
249 | 261 | sb.append(", createdBy=").append(createdBy); |
250 | 262 | sb.append(", lastUpdated=").append(lastUpdated); |
... | ... |
src/main/java/com/huaheng/pc/config/container/mapper/ContainerMapper.java
... | ... | @@ -16,5 +16,9 @@ public interface ContainerMapper extends BaseMapper<Container> { |
16 | 16 | |
17 | 17 | Container findAllByCode(@Param("code") String code); |
18 | 18 | |
19 | + int addList(@Param("containers") List<Container> containers); | |
19 | 20 | |
21 | + | |
22 | + //获得空货架编号 | |
23 | + List<Container> selectListShelf(); | |
20 | 24 | } |
21 | 25 | \ No newline at end of file |
... | ... |
src/main/java/com/huaheng/pc/config/container/service/ContainerService.java
src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java
... | ... | @@ -31,6 +31,7 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container |
31 | 31 | @Override |
32 | 32 | public AjaxResult<List<Container>> insertContainer(String type, Integer quantity) { |
33 | 33 | List<Container> containerList = new ArrayList<>(); |
34 | + List<Container> containers =new ArrayList<>(); | |
34 | 35 | Integer number = getNumber(type); |
35 | 36 | for(int i=0; i<quantity; i++) { |
36 | 37 | number++; |
... | ... | @@ -45,10 +46,13 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container |
45 | 46 | container.setEnable(true); |
46 | 47 | container.setCompanyCode(ShiroUtils.getCompanyCodeList().get(0)); |
47 | 48 | container.setWarehouseCode(ShiroUtils.getWarehouseCode()); |
48 | - this.save(container); | |
49 | - containerList.add(container); | |
49 | + containers.add(container); | |
50 | + if( i>0 && (i%1000==0 || i == quantity-1)){ | |
51 | + containerMapper.addList(containers); | |
52 | + containers = new ArrayList<>(); | |
53 | + } | |
50 | 54 | } |
51 | - return AjaxResult.success(containerList); | |
55 | + return AjaxResult.success(containers); | |
52 | 56 | } |
53 | 57 | |
54 | 58 | private Integer getNumber(String type) { |
... | ... | @@ -167,4 +171,10 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container |
167 | 171 | public Container findAllByCode(String code) { |
168 | 172 | return containerMapper.findAllByCode(code); |
169 | 173 | } |
174 | + | |
175 | + | |
176 | + @Override | |
177 | + public List<Container> selectListShelf() { | |
178 | + return containerMapper.selectListShelf(); | |
179 | + } | |
170 | 180 | } |
... | ... |
src/main/java/com/huaheng/pc/config/containerType/controller/ContainerTypeController.java
... | ... | @@ -63,6 +63,7 @@ public class ContainerTypeController extends BaseController |
63 | 63 | lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin),ContainerType::getCreated, createdBegin) |
64 | 64 | .le(StringUtils.isNotEmpty(createdEnd), ContainerType::getCreated, createdEnd) |
65 | 65 | .eq(ContainerType::getWarehouseCode,ShiroUtils.getWarehouseCode()) |
66 | + .in(ContainerType::getCompanyCode,ShiroUtils.getCompanyCodeList()) | |
66 | 67 | .eq(StringUtils.isNotEmpty(containerType.getCode()),ContainerType::getCode,containerType.getCode()) |
67 | 68 | .like(StringUtils.isNotEmpty(containerType.getName()),ContainerType::getName,containerType.getName());; |
68 | 69 | |
... | ... |
src/main/java/com/huaheng/pc/config/containerType/service/ContainerTypeServiceImpl.java
... | ... | @@ -3,14 +3,17 @@ package com.huaheng.pc.config.containerType.service; |
3 | 3 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
4 | 4 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
5 | 5 | import com.huaheng.common.utils.security.ShiroUtils; |
6 | +import com.huaheng.pc.config.configValue.domain.ConfigValue; | |
6 | 7 | import org.springframework.stereotype.Service; |
7 | - | |
8 | +import javax.annotation.Resource; | |
8 | 9 | import java.util.List; |
9 | 10 | import java.util.Map; |
10 | 11 | |
11 | 12 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
12 | 13 | import com.huaheng.pc.config.containerType.domain.ContainerType; |
13 | 14 | import com.huaheng.pc.config.containerType.mapper.ContainerTypeMapper; |
15 | +import com.huaheng.pc.config.containerType.service.ContainerTypeService; | |
16 | +import org.springframework.transaction.annotation.Transactional; | |
14 | 17 | |
15 | 18 | @Service("containerType") |
16 | 19 | public class ContainerTypeServiceImpl extends ServiceImpl<ContainerTypeMapper, ContainerType> implements ContainerTypeService{ |
... | ... |
src/main/java/com/huaheng/pc/config/customer/controller/CustomerController.java
... | ... | @@ -66,7 +66,7 @@ public class CustomerController extends BaseController { |
66 | 66 | lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), Customer::getCreated, createdBegin) |
67 | 67 | .lt(StringUtils.isNotEmpty(createdEnd), Customer::getCreated, createdEnd) |
68 | 68 | .eq(StringUtils.isNotEmpty(customer.getCode()), Customer::getCode, customer.getCode()) |
69 | - .eq(StringUtils.isNotEmpty(customer.getName()), Customer::getName, customer.getName()) | |
69 | + .like(StringUtils.isNotEmpty(customer.getName()), Customer::getName, customer.getName()) | |
70 | 70 | .eq(Customer::getDeleted, false) |
71 | 71 | .eq(Customer::getWarehouseCode, ShiroUtils.getWarehouseCode()) |
72 | 72 | .orderByDesc(Customer::getCreated); |
... | ... |
src/main/java/com/huaheng/pc/config/cycleCountPreference/service/CycleCountPreferenceService.java
... | ... | @@ -73,6 +73,7 @@ public class CycleCountPreferenceService extends ServiceImpl<CycleCountPreferenc |
73 | 73 | * @param newWarehouseCode 新仓库编码 |
74 | 74 | * @return 是否复制成功 |
75 | 75 | */ |
76 | + @Transactional | |
76 | 77 | public boolean cycleCountPreferenceCopy(String warehouseCode, String newWarehouseCode) { |
77 | 78 | log.trace("开始复盘点首选项表"); |
78 | 79 | LambdaQueryWrapper<CycleCountPreference> lambdaQueryWrapper = Wrappers.lambdaQuery(); |
... | ... |
src/main/java/com/huaheng/pc/config/excelTemplate/controller/excelTemplateController.java
... | ... | @@ -59,7 +59,7 @@ public class excelTemplateController extends BaseController { |
59 | 59 | Integer pageSize = pageDomain.getPageSize(); |
60 | 60 | lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), ExcelTemplate::getCreated, createdBegin) |
61 | 61 | .lt(StringUtils.isNotEmpty(createdEnd), ExcelTemplate::getCreated, createdEnd) |
62 | - .eq(StringUtils.isNotEmpty(excelTemplate.getName()), ExcelTemplate::getName, excelTemplate.getName()) | |
62 | + .like(StringUtils.isNotEmpty(excelTemplate.getName()), ExcelTemplate::getName, excelTemplate.getName()) | |
63 | 63 | .eq(ExcelTemplate::getWarehouseCode, ShiroUtils.getWarehouseCode()) |
64 | 64 | .in(ExcelTemplate::getCompanyCode, ShiroUtils.getCompanyCodeList()); |
65 | 65 | |
... | ... |
src/main/java/com/huaheng/pc/config/location/controller/LocationController.java
... | ... | @@ -76,6 +76,7 @@ public class LocationController extends BaseController { |
76 | 76 | Integer pageSize = pageDomain.getPageSize(); |
77 | 77 | lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), Location::getCreated, createdBegin) |
78 | 78 | .lt(StringUtils.isNotEmpty(createdEnd), Location::getCreated, createdEnd) |
79 | + .eq(Location::getWarehouseCode,ShiroUtils.getWarehouseCode()) | |
79 | 80 | .eq(StringUtils.isNotEmpty(location.getCode()), Location::getCode, location.getCode()) |
80 | 81 | .eq(StringUtils.isNotEmpty(location.getName()), Location::getName,location.getName()) |
81 | 82 | .eq(StringUtils.isNotEmpty(location.getContainerCode()), Location::getContainerCode, location.getContainerCode()) |
... | ... |
src/main/java/com/huaheng/pc/config/location/mapper/LocationMapper.java
... | ... | @@ -7,6 +7,8 @@ import org.apache.ibatis.annotations.Param; |
7 | 7 | import java.util.LinkedHashMap; |
8 | 8 | import java.util.List; |
9 | 9 | |
10 | +import java.util.List; | |
11 | + | |
10 | 12 | public interface LocationMapper extends BaseMapper<Location> { |
11 | 13 | |
12 | 14 | void updateStatus(@Param("warehouseCode") String warehouseCode, @Param("code") String code, @Param("status") String status); |
... | ... | @@ -15,8 +17,11 @@ public interface LocationMapper extends BaseMapper<Location> { |
15 | 17 | |
16 | 18 | Location position(String locatingRule); |
17 | 19 | |
20 | + int addList(@Param("locations") List<Location> locations); | |
21 | + | |
18 | 22 | Location getAllLocation(@Param("warehouseCode") String warehouseCode, @Param("type") String type); |
19 | 23 | |
20 | 24 | //库位利用率 |
21 | 25 | List<LinkedHashMap<String, Object>> getLocationProp(); |
26 | + | |
22 | 27 | } |
23 | 28 | \ No newline at end of file |
... | ... |
src/main/java/com/huaheng/pc/config/location/service/LocationServiceImpl.java
... | ... | @@ -142,7 +142,21 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i |
142 | 142 | } |
143 | 143 | } |
144 | 144 | } |
145 | - return locationService.saveBatch(locations); | |
145 | + int num =0; | |
146 | + List<Location> locations1 = new ArrayList<>(); | |
147 | + if(locations.size() >1000 ){ | |
148 | + for(Location item : locations){ | |
149 | + num++; | |
150 | + locations1.add(item); | |
151 | + if(num % 1000 ==0 || num == locations.size()){ | |
152 | + locationMapper.addList(locations1); | |
153 | + locations1=new ArrayList<>(); | |
154 | + } | |
155 | + } | |
156 | + }else { | |
157 | + locationMapper.addList(locations); | |
158 | + } | |
159 | + return true; | |
146 | 160 | } |
147 | 161 | |
148 | 162 | @Override |
... | ... |
src/main/java/com/huaheng/pc/config/locationType/domain/LocationType.java
... | ... | @@ -39,19 +39,19 @@ public class LocationType implements Serializable { |
39 | 39 | * 长 |
40 | 40 | */ |
41 | 41 | @TableField(value = "length") |
42 | - private Integer length; | |
42 | + private String length; | |
43 | 43 | |
44 | 44 | /** |
45 | 45 | * 宽 |
46 | 46 | */ |
47 | 47 | @TableField(value = "width") |
48 | - private Integer width; | |
48 | + private String width; | |
49 | 49 | |
50 | 50 | /** |
51 | 51 | * 高 |
52 | 52 | */ |
53 | 53 | @TableField(value = "height") |
54 | - private Integer height; | |
54 | + private String height; | |
55 | 55 | |
56 | 56 | /** |
57 | 57 | * 最大重量 |
... | ... |
src/main/java/com/huaheng/pc/config/locationType/service/LocationTypeServiceImpl.java
... | ... | @@ -8,6 +8,7 @@ import com.huaheng.pc.config.cycleCountPreference.domain.CycleCountPreference; |
8 | 8 | import com.huaheng.pc.config.locationType.domain.LocationType; |
9 | 9 | import com.huaheng.pc.config.locationType.mapper.LocationTypeMapper; |
10 | 10 | import org.springframework.stereotype.Service; |
11 | +import org.springframework.transaction.annotation.Transactional; | |
11 | 12 | |
12 | 13 | import java.util.List; |
13 | 14 | import java.util.Map; |
... | ... | @@ -31,6 +32,7 @@ public class LocationTypeServiceImpl extends ServiceImpl<LocationTypeMapper, Loc |
31 | 32 | * @return 是否复制成功 |
32 | 33 | */ |
33 | 34 | @Override |
35 | + @Transactional | |
34 | 36 | public boolean locationTypeCopy(String warehouseCode, String newWarehouseCode) { |
35 | 37 | log.trace("开始复盘点首选项表"); |
36 | 38 | LambdaQueryWrapper<LocationType> lambdaQueryWrapper = Wrappers.lambdaQuery(); |
... | ... |
src/main/java/com/huaheng/pc/config/material/controller/MaterialController.java
... | ... | @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
4 | 4 | import com.baomidou.mybatisplus.core.metadata.IPage; |
5 | 5 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
6 | 6 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
7 | +import com.huaheng.common.exception.service.ServiceException; | |
8 | +import com.huaheng.common.support.Convert; | |
7 | 9 | import com.huaheng.common.utils.StringUtils; |
8 | 10 | import com.huaheng.common.utils.poi.ExcelUtil; |
9 | 11 | import com.huaheng.common.utils.security.ShiroUtils; |
... | ... | @@ -16,6 +18,8 @@ import com.huaheng.framework.web.page.TableDataInfo; |
16 | 18 | import com.huaheng.framework.web.page.TableSupport; |
17 | 19 | import com.huaheng.pc.config.material.domain.Material; |
18 | 20 | import com.huaheng.pc.config.material.service.MaterialService; |
21 | +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; | |
22 | +import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; | |
19 | 23 | import io.swagger.annotations.Api; |
20 | 24 | import io.swagger.annotations.ApiOperation; |
21 | 25 | import io.swagger.annotations.ApiParam; |
... | ... | @@ -37,6 +41,8 @@ public class MaterialController extends BaseController { |
37 | 41 | |
38 | 42 | @Resource |
39 | 43 | private MaterialService materialService; |
44 | + @Resource | |
45 | + private InventoryDetailService inventoryDetailService; | |
40 | 46 | |
41 | 47 | @RequiresPermissions("config:material:view") |
42 | 48 | @GetMapping() |
... | ... | @@ -66,11 +72,10 @@ public class MaterialController extends BaseController { |
66 | 72 | lambda.gt(StringUtils.isNotEmpty(createdBegin), Material::getCreated, createdBegin) |
67 | 73 | .lt(StringUtils.isNotEmpty(createdEnd), Material::getCreated, createdEnd) |
68 | 74 | .eq(StringUtils.isNotEmpty(material.getCode()), Material::getCode, material.getCode()) |
69 | - .eq(StringUtils.isNotEmpty(material.getName()), Material::getName, material.getName()) | |
75 | + .like(StringUtils.isNotEmpty(material.getName()), Material::getName, material.getName()) | |
70 | 76 | .eq(StringUtils.isNotEmpty(material.getType()), Material::getType, material.getType()) |
71 | 77 | .like(StringUtils.isNotEmpty(material.getSpec()), Material::getSpec, material.getSpec()) |
72 | 78 | .eq(Material::getWarehouseCode, ShiroUtils.getWarehouseCode()) |
73 | - .in(Material::getCompanyCode, ShiroUtils.getCompanyCodeList()) | |
74 | 79 | .eq(Material::getDeleted, false); |
75 | 80 | |
76 | 81 | if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ |
... | ... | @@ -139,6 +144,16 @@ public class MaterialController extends BaseController { |
139 | 144 | if (StringUtils.isEmpty(ids)){ |
140 | 145 | return AjaxResult.error("id不能为空"); |
141 | 146 | } else { |
147 | + for(Integer id :Convert.toIntArray(ids)){ | |
148 | + Material material = materialService.getById(id); | |
149 | + LambdaQueryWrapper<InventoryDetail> lamb = Wrappers.lambdaQuery(); | |
150 | + lamb.eq(InventoryDetail::getWarehouseCode,ShiroUtils.getWarehouseCode()) | |
151 | + .eq(InventoryDetail::getMaterialCode,material.getCode()); | |
152 | + List<InventoryDetail> inventoryDetails = inventoryDetailService.list(lamb); | |
153 | + if(inventoryDetails != null || inventoryDetails.size() > 0){ | |
154 | + throw new ServiceException("id为"+id+"的物料有库存"); | |
155 | + } | |
156 | + } | |
142 | 157 | return materialService.removeByIds(ids); |
143 | 158 | } |
144 | 159 | } |
... | ... |