Commit 532cf712b26360e1db07ea7539762778b274a190
Merge remote-tracking branch 'origin/develop' into develop
Showing
50 changed files
with
921 additions
and
306 deletions
.idea/workspace.xml
... | ... | @@ -3,16 +3,14 @@ |
3 | 3 | <component name="ChangeListManager"> |
4 | 4 | <list default="true" id="baeae966-16bb-4f97-a411-22fe5a65cefd" name="Default Changelist" comment=""> |
5 | 5 | <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> |
6 | - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/FilterConfigDetail/service/FilterConfigDetailService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/FilterConfigDetail/service/FilterConfigDetailService.java" afterDir="false" /> | |
7 | - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java" afterDir="false" /> | |
8 | - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java" afterDir="false" /> | |
9 | - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiving/service/ReceivingService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiving/service/ReceivingService.java" afterDir="false" /> | |
10 | - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/check/checkDetail/checkDetail.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/check/checkDetail/checkDetail.html" afterDir="false" /> | |
11 | - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiptDetail/add.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiptDetail/add.html" afterDir="false" /> | |
12 | - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiptDetail/receiptDetail.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiptDetail/receiptDetail.html" 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 | 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" /> |
14 | - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiptHeader/report.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiptHeader/report.html" afterDir="false" /> | |
15 | - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiving/add.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiving/add.html" afterDir="false" /> | |
16 | 14 | </list> |
17 | 15 | <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> |
18 | 16 | <option name="SHOW_DIALOG" value="false" /> |
... | ... | @@ -31,59 +29,7 @@ |
31 | 29 | <option name="HIDDEN_KINDS"> |
32 | 30 | <set /> |
33 | 31 | </option> |
34 | - <expand> | |
35 | - <path> | |
36 | - <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" /> | |
37 | - <item name="@172.16.29.45" type="feb32156:DbDataSourceImpl" /> | |
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 | - </path> | |
44 | - <path> | |
45 | - <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" /> | |
46 | - <item name="@172.16.29.45" type="feb32156:DbDataSourceImpl" /> | |
47 | - <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" /> | |
48 | - <item name="wms_v2: schema" type="76f4a085:MysqlImplModel$Schema" /> | |
49 | - </path> | |
50 | - <path> | |
51 | - <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" /> | |
52 | - <item name="@172.16.29.45" type="feb32156:DbDataSourceImpl" /> | |
53 | - <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" /> | |
54 | - <item name="wms_v2: schema" type="76f4a085:MysqlImplModel$Schema" /> | |
55 | - <item name="receipt_header: table" type="285a2a93:MysqlImplModel$Table" /> | |
56 | - </path> | |
57 | - <path> | |
58 | - <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" /> | |
59 | - <item name="@localhost" type="feb32156:DbDataSourceImpl" /> | |
60 | - </path> | |
61 | - <path> | |
62 | - <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" /> | |
63 | - <item name="@localhost" type="feb32156:DbDataSourceImpl" /> | |
64 | - <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" /> | |
65 | - </path> | |
66 | - <path> | |
67 | - <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" /> | |
68 | - <item name="@localhost" type="feb32156:DbDataSourceImpl" /> | |
69 | - <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" /> | |
70 | - <item name="wms2.0: schema" type="76f4a085:MysqlImplModel$Schema" /> | |
71 | - </path> | |
72 | - <path> | |
73 | - <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" /> | |
74 | - <item name="@localhost" type="feb32156:DbDataSourceImpl" /> | |
75 | - <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" /> | |
76 | - <item name="wms2.0: schema" type="76f4a085:MysqlImplModel$Schema" /> | |
77 | - <item name="check_detail: table" type="285a2a93:MysqlImplModel$Table" /> | |
78 | - </path> | |
79 | - <path> | |
80 | - <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" /> | |
81 | - <item name="@localhost" type="feb32156:DbDataSourceImpl" /> | |
82 | - <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" /> | |
83 | - <item name="wms2.0: schema" type="76f4a085:MysqlImplModel$Schema" /> | |
84 | - <item name="check_header: table" type="285a2a93:MysqlImplModel$Table" /> | |
85 | - </path> | |
86 | - </expand> | |
32 | + <expand /> | |
87 | 33 | <select /> |
88 | 34 | </component> |
89 | 35 | <component name="FileTemplateManagerImpl"> |
... | ... | @@ -104,6 +50,7 @@ |
104 | 50 | <OptionsSetting value="false" id="Update" /> |
105 | 51 | </component> |
106 | 52 | <component name="PropertiesComponent"> |
53 | + <property name="ASKED_ADD_EXTERNAL_FILES" value="true" /> | |
107 | 54 | <property name="DefaultHtmlFileTemplate" value="HTML File" /> |
108 | 55 | <property name="RequestMappingsPanelOrder0" value="0" /> |
109 | 56 | <property name="RequestMappingsPanelOrder1" value="1" /> |
... | ... | @@ -112,17 +59,30 @@ |
112 | 59 | <property name="WebServerToolWindowFactoryState" value="false" /> |
113 | 60 | <property name="aspect.path.notification.shown" value="true" /> |
114 | 61 | <property name="full.screen.before.presentation.mode" value="false" /> |
115 | - <property name="last_opened_file_path" value="$PROJECT_DIR$/../WMSV1" /> | |
62 | + <property name="last_opened_file_path" value="$PROJECT_DIR$/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable" /> | |
116 | 63 | <property name="node.js.detected.package.eslint" value="true" /> |
117 | 64 | <property name="node.js.detected.package.tslint" value="true" /> |
118 | 65 | <property name="node.js.path.for.package.eslint" value="project" /> |
119 | 66 | <property name="node.js.path.for.package.tslint" value="project" /> |
120 | 67 | <property name="node.js.selected.package.eslint" value="(autodetect)" /> |
121 | 68 | <property name="node.js.selected.package.tslint" value="(autodetect)" /> |
69 | + <property name="project.structure.last.edited" value="Modules" /> | |
70 | + <property name="project.structure.proportion" value="0.15429688" /> | |
71 | + <property name="project.structure.side.proportion" value="0.2" /> | |
122 | 72 | <property name="run.code.analysis.last.selected.profile" value="pProject Default" /> |
123 | - <property name="settings.editor.selected.configurable" value="reference.settingsdialog.IDE.editor.colors.Console Font" /> | |
73 | + <property name="settings.editor.selected.configurable" value="preferences.pluginManager" /> | |
74 | + </component> | |
75 | + <component name="RecentsManager"> | |
76 | + <key name="CopyFile.RECENT_KEYS"> | |
77 | + <recent name="E:\code\wms2\src\main\resources\static\ajax\libs\bootstrap-table\extensions\editable" /> | |
78 | + </key> | |
124 | 79 | </component> |
125 | 80 | <component name="RunDashboard"> |
81 | + <option name="configurationTypes"> | |
82 | + <set> | |
83 | + <option value="SpringBootApplicationConfigurationType" /> | |
84 | + </set> | |
85 | + </option> | |
126 | 86 | <option name="ruleStates"> |
127 | 87 | <list> |
128 | 88 | <RuleState> |
... | ... | @@ -135,6 +95,19 @@ |
135 | 95 | </option> |
136 | 96 | </component> |
137 | 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" /> | |
100 | + <module name="huaheng" /> | |
101 | + <extension name="coverage"> | |
102 | + <pattern> | |
103 | + <option name="PATTERN" value="com.huaheng.pc.receipt.receiptContainerHeader.service.*" /> | |
104 | + <option name="ENABLED" value="true" /> | |
105 | + </pattern> | |
106 | + </extension> | |
107 | + <method v="2"> | |
108 | + <option name="Make" enabled="true" /> | |
109 | + </method> | |
110 | + </configuration> | |
138 | 111 | <configuration name="ServiceTest.sendSimpleMail" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true"> |
139 | 112 | <module name="huaheng" /> |
140 | 113 | <extension name="coverage"> |
... | ... | @@ -168,12 +141,14 @@ |
168 | 141 | </method> |
169 | 142 | </configuration> |
170 | 143 | <list> |
144 | + <item itemvalue="Application.ReceiptContainerHeaderServiceImpl" /> | |
171 | 145 | <item itemvalue="JUnit.ServiceTest.sendSimpleMail" /> |
172 | 146 | <item itemvalue="Spring Boot.HuaHengApplication" /> |
173 | 147 | </list> |
174 | 148 | <recent_temporary> |
175 | 149 | <list> |
176 | 150 | <item itemvalue="Spring Boot.HuaHengApplication" /> |
151 | + <item itemvalue="Application.ReceiptContainerHeaderServiceImpl" /> | |
177 | 152 | <item itemvalue="JUnit.ServiceTest.sendSimpleMail" /> |
178 | 153 | </list> |
179 | 154 | </recent_temporary> |
... | ... | @@ -181,11 +156,17 @@ |
181 | 156 | <component name="ServiceViewManager"> |
182 | 157 | <option name="allServicesViewState"> |
183 | 158 | <serviceView> |
159 | + <option name="contentProportion" value="0.1612554" /> | |
184 | 160 | <treeState> |
185 | 161 | <expand> |
186 | 162 | <path> |
187 | 163 | <item name="services root" type="e789fda9:ObjectUtils$Sentinel" /> |
188 | - <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@20dd4d1b" type="7427dc5b:ServiceModel$ServiceGroupNode" /> | |
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" /> | |
189 | 170 | </path> |
190 | 171 | </expand> |
191 | 172 | <select /> |
... | ... | @@ -224,7 +205,73 @@ |
224 | 205 | <workItem from="1568102802104" duration="132000" /> |
225 | 206 | <workItem from="1568108585629" duration="2016000" /> |
226 | 207 | <workItem from="1568162278389" duration="3299000" /> |
227 | - <workItem from="1568170378983" duration="10947000" /> | |
208 | + <workItem from="1568170378983" duration="18141000" /> | |
209 | + <workItem from="1568249510258" duration="10225000" /> | |
210 | + <workItem from="1568266250892" duration="1333000" /> | |
211 | + <workItem from="1568269799447" duration="99000" /> | |
212 | + <workItem from="1568270609232" duration="2008000" /> | |
213 | + <workItem from="1568277784815" duration="3397000" /> | |
214 | + <workItem from="1568595092050" duration="120000" /> | |
215 | + <workItem from="1568595230891" duration="859000" /> | |
216 | + <workItem from="1568597823149" duration="18415000" /> | |
217 | + <workItem from="1568622349963" duration="1657000" /> | |
218 | + <workItem from="1568625672966" duration="1471000" /> | |
219 | + <workItem from="1568680155591" duration="361000" /> | |
220 | + <workItem from="1568680712425" duration="2511000" /> | |
221 | + <workItem from="1568684486098" duration="957000" /> | |
222 | + <workItem from="1568685565340" duration="4430000" /> | |
223 | + <workItem from="1568691952276" duration="8650000" /> | |
224 | + <workItem from="1568707800753" duration="1137000" /> | |
225 | + <workItem from="1568710796434" duration="1618000" /> | |
226 | + <workItem from="1568766055582" duration="6000" /> | |
227 | + <workItem from="1568768025248" duration="5346000" /> | |
228 | + <workItem from="1568778175920" duration="2572000" /> | |
229 | + <workItem from="1568787162277" duration="1740000" /> | |
230 | + <workItem from="1568788907625" duration="7345000" /> | |
231 | + <workItem from="1568853208604" duration="1177000" /> | |
232 | + <workItem from="1568854399388" duration="3001000" /> | |
233 | + <workItem from="1568861704814" duration="2380000" /> | |
234 | + <workItem from="1568865359898" duration="108000" /> | |
235 | + <workItem from="1568865651366" duration="623000" /> | |
236 | + <workItem from="1568868902957" duration="3468000" /> | |
237 | + <workItem from="1568875455023" duration="3979000" /> | |
238 | + <workItem from="1568882661913" duration="1883000" /> | |
239 | + <workItem from="1568887498559" duration="554000" /> | |
240 | + <workItem from="1568940290765" duration="1255000" /> | |
241 | + <workItem from="1568943643646" duration="634000" /> | |
242 | + <workItem from="1568946720514" duration="599000" /> | |
243 | + <workItem from="1568951675236" duration="5060000" /> | |
244 | + <workItem from="1568963416874" duration="848000" /> | |
245 | + <workItem from="1568964502775" duration="3587000" /> | |
246 | + <workItem from="1568970279520" duration="8000" /> | |
247 | + <workItem from="1569032862367" duration="1792000" /> | |
248 | + <workItem from="1569037677538" duration="64000" /> | |
249 | + <workItem from="1569134046393" duration="65000" /> | |
250 | + <workItem from="1569198499251" duration="8680000" /> | |
251 | + <workItem from="1569207254306" duration="18489000" /> | |
252 | + <workItem from="1569285398457" duration="5908000" /> | |
253 | + <workItem from="1569295518709" duration="463000" /> | |
254 | + <workItem from="1569299856099" duration="4172000" /> | |
255 | + <workItem from="1569312420091" duration="6208000" /> | |
256 | + <workItem from="1569318779053" duration="35000" /> | |
257 | + <workItem from="1569372049669" duration="4595000" /> | |
258 | + <workItem from="1569390345693" duration="1418000" /> | |
259 | + <workItem from="1569393808742" duration="10588000" /> | |
260 | + <workItem from="1569411369199" duration="191000" /> | |
261 | + <workItem from="1569457959376" duration="2373000" /> | |
262 | + <workItem from="1569461866204" duration="777000" /> | |
263 | + <workItem from="1569462694383" duration="6561000" /> | |
264 | + <workItem from="1569477197991" duration="8695000" /> | |
265 | + <workItem from="1569545011335" duration="12640000" /> | |
266 | + <workItem from="1569565238961" duration="5096000" /> | |
267 | + <workItem from="1569571884664" duration="2032000" /> | |
268 | + <workItem from="1569577676760" duration="124000" /> | |
269 | + <workItem from="1569717688488" duration="13568000" /> | |
270 | + <workItem from="1569743740441" duration="1168000" /> | |
271 | + <workItem from="1569745589865" duration="2739000" /> | |
272 | + <workItem from="1569748443357" duration="438000" /> | |
273 | + <workItem from="1569803438585" duration="13789000" /> | |
274 | + <workItem from="1570581146682" duration="9295000" /> | |
228 | 275 | </task> |
229 | 276 | <task id="LOCAL-00001" summary="修改添加物料时使用物料类别生成物料编码"> |
230 | 277 | <created>1567664306836</created> |
... | ... | @@ -268,7 +315,203 @@ |
268 | 315 | <option name="project" value="LOCAL" /> |
269 | 316 | <updated>1568174134623</updated> |
270 | 317 | </task> |
271 | - <option name="localTasksCounter" value="7" /> | |
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> | |
422 | + </task> | |
423 | + <task id="LOCAL-00022" summary="修改物料管理中物料类型使用物料类别表,不在使用数据字典"> | |
424 | + <created>1569395439782</created> | |
425 | + <option name="number" value="00022" /> | |
426 | + <option name="presentableId" value="LOCAL-00022" /> | |
427 | + <option name="project" value="LOCAL" /> | |
428 | + <updated>1569395439782</updated> | |
429 | + </task> | |
430 | + <task id="LOCAL-00023" summary="修改波次主表、波次流程头表、波次流程明细页面"> | |
431 | + <created>1569402291802</created> | |
432 | + <option name="number" value="00023" /> | |
433 | + <option name="presentableId" value="LOCAL-00023" /> | |
434 | + <option name="project" value="LOCAL" /> | |
435 | + <updated>1569402291802</updated> | |
436 | + </task> | |
437 | + <task id="LOCAL-00024" summary="修改入库首选项修改添加模块为select"> | |
438 | + <created>1569411473661</created> | |
439 | + <option name="number" value="00024" /> | |
440 | + <option name="presentableId" value="LOCAL-00024" /> | |
441 | + <option name="project" value="LOCAL" /> | |
442 | + <updated>1569411473661</updated> | |
443 | + </task> | |
444 | + <task id="LOCAL-00025" summary="修改任务取消入库组盘状态不回滚,修改任务完成入库单状态不完成"> | |
445 | + <created>1569477488017</created> | |
446 | + <option name="number" value="00025" /> | |
447 | + <option name="presentableId" value="LOCAL-00025" /> | |
448 | + <option name="project" value="LOCAL" /> | |
449 | + <updated>1569477488017</updated> | |
450 | + </task> | |
451 | + <task id="LOCAL-00026" summary="添加自动生成容器编码"> | |
452 | + <created>1569484931952</created> | |
453 | + <option name="number" value="00026" /> | |
454 | + <option name="presentableId" value="LOCAL-00026" /> | |
455 | + <option name="project" value="LOCAL" /> | |
456 | + <updated>1569484931952</updated> | |
457 | + </task> | |
458 | + <task id="LOCAL-00027" summary="修改入库首选项页面,规则查询使用数据字典值,表格值显示修改"> | |
459 | + <created>1569553028716</created> | |
460 | + <option name="number" value="00027" /> | |
461 | + <option name="presentableId" value="LOCAL-00027" /> | |
462 | + <option name="project" value="LOCAL" /> | |
463 | + <updated>1569553028716</updated> | |
464 | + </task> | |
465 | + <task id="LOCAL-00028" summary="入库单添加重置按钮,入库单历史添加上游单号搜索"> | |
466 | + <created>1569554438854</created> | |
467 | + <option name="number" value="00028" /> | |
468 | + <option name="presentableId" value="LOCAL-00028" /> | |
469 | + <option name="project" value="LOCAL" /> | |
470 | + <updated>1569554438854</updated> | |
471 | + </task> | |
472 | + <task id="LOCAL-00029" summary="添加取消入库组盘时容器为临时容器,删除容器"> | |
473 | + <created>1569567112288</created> | |
474 | + <option name="number" value="00029" /> | |
475 | + <option name="presentableId" value="LOCAL-00029" /> | |
476 | + <option name="project" value="LOCAL" /> | |
477 | + <updated>1569567112288</updated> | |
478 | + </task> | |
479 | + <task id="LOCAL-00030" summary="出库完成时删除临时容器"> | |
480 | + <created>1569568426923</created> | |
481 | + <option name="number" value="00030" /> | |
482 | + <option name="presentableId" value="LOCAL-00030" /> | |
483 | + <option name="project" value="LOCAL" /> | |
484 | + <updated>1569568426923</updated> | |
485 | + </task> | |
486 | + <task id="LOCAL-00031" summary="修改容器新增时容器enable状态"> | |
487 | + <created>1569577849038</created> | |
488 | + <option name="number" value="00031" /> | |
489 | + <option name="presentableId" value="LOCAL-00031" /> | |
490 | + <option name="project" value="LOCAL" /> | |
491 | + <updated>1569577849039</updated> | |
492 | + </task> | |
493 | + <task id="LOCAL-00032" summary="修改入库组盘页面中任务类型的显示问题 修改任务完成不修改入库组盘状态的问题"> | |
494 | + <created>1569740895495</created> | |
495 | + <option name="number" value="00032" /> | |
496 | + <option name="presentableId" value="LOCAL-00032" /> | |
497 | + <option name="project" value="LOCAL" /> | |
498 | + <updated>1569740895496</updated> | |
499 | + </task> | |
500 | + <task id="LOCAL-00033" summary="添加根据code查询物料"> | |
501 | + <created>1569743042718</created> | |
502 | + <option name="number" value="00033" /> | |
503 | + <option name="presentableId" value="LOCAL-00033" /> | |
504 | + <option name="project" value="LOCAL" /> | |
505 | + <updated>1569743042718</updated> | |
506 | + </task> | |
507 | + <task id="LOCAL-00034" summary="添加根据容器编码查找容器的方法 配置规则添加自动添加模块类型 添加是否自动生成临时容器"> | |
508 | + <created>1570582333467</created> | |
509 | + <option name="number" value="00034" /> | |
510 | + <option name="presentableId" value="LOCAL-00034" /> | |
511 | + <option name="project" value="LOCAL" /> | |
512 | + <updated>1570582333467</updated> | |
513 | + </task> | |
514 | + <option name="localTasksCounter" value="35" /> | |
272 | 515 | <servers /> |
273 | 516 | </component> |
274 | 517 | <component name="TypeScriptGeneratedFilesManager"> |
... | ... | @@ -288,41 +531,98 @@ |
288 | 531 | </option> |
289 | 532 | </component> |
290 | 533 | <component name="VcsManagerConfiguration"> |
291 | - <MESSAGE value="修改添加物料时使用物料类别生成物料编码" /> | |
292 | - <MESSAGE value="修改质检页面、添加完成质检" /> | |
293 | - <MESSAGE value="修复入库质检请求地址冲突" /> | |
294 | - <MESSAGE value="添加入库单打印" /> | |
295 | - <option name="LAST_COMMIT_MESSAGE" value="添加入库单打印" /> | |
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="添加根据容器编码查找容器的方法 配置规则添加自动添加模块类型 添加是否自动生成临时容器" /> | |
296 | 561 | </component> |
297 | 562 | <component name="XDebuggerManager"> |
298 | 563 | <breakpoint-manager> |
299 | 564 | <breakpoints> |
300 | 565 | <line-breakpoint enabled="true" type="java-line"> |
301 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkDetail/controller/CheckDetailController.java</url> | |
302 | - <line>152</line> | |
303 | - <option name="timeStamp" value="6" /> | |
566 | + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/bom/controller/BomHeaderController.java</url> | |
567 | + <line>164</line> | |
568 | + <option name="timeStamp" value="24" /> | |
569 | + </line-breakpoint> | |
570 | + <line-breakpoint enabled="true" type="java-line"> | |
571 | + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/controller/MaterialController.java</url> | |
572 | + <line>150</line> | |
573 | + <option name="timeStamp" value="26" /> | |
574 | + </line-breakpoint> | |
575 | + <line-breakpoint enabled="true" type="java-line"> | |
576 | + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java</url> | |
577 | + <line>174</line> | |
578 | + <option name="timeStamp" value="28" /> | |
304 | 579 | </line-breakpoint> |
305 | 580 | <line-breakpoint enabled="true" type="java-line"> |
306 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkDetail/controller/CheckDetailController.java</url> | |
307 | - <line>154</line> | |
308 | - <option name="timeStamp" value="8" /> | |
581 | + <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" /> | |
309 | 584 | </line-breakpoint> |
310 | 585 | <line-breakpoint enabled="true" type="java-line"> |
311 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkDetail/service/CheckDetailService.java</url> | |
312 | - <line>45</line> | |
313 | - <option name="timeStamp" value="9" /> | |
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" /> | |
314 | 589 | </line-breakpoint> |
315 | 590 | <line-breakpoint enabled="true" type="java-line"> |
316 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java</url> | |
317 | - <line>144</line> | |
318 | - <option name="timeStamp" value="10" /> | |
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" /> | |
319 | 594 | </line-breakpoint> |
320 | 595 | <line-breakpoint enabled="true" type="java-line"> |
321 | - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java</url> | |
322 | - <line>240</line> | |
323 | - <option name="timeStamp" value="11" /> | |
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" /> | |
599 | + </line-breakpoint> | |
600 | + <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" /> | |
604 | + </line-breakpoint> | |
605 | + <line-breakpoint enabled="true" type="javascript"> | |
606 | + <url>file://$PROJECT_DIR$/src/main/resources/templates/check/checkingRegister/checkingRegister.html</url> | |
607 | + <line>308</line> | |
608 | + <option name="timeStamp" value="29" /> | |
609 | + </line-breakpoint> | |
610 | + <line-breakpoint enabled="true" type="javascript"> | |
611 | + <url>file://$PROJECT_DIR$/src/main/resources/templates/config/waveFlowHeader/waveFlowHeader.html</url> | |
612 | + <line>71</line> | |
613 | + <option name="timeStamp" value="43" /> | |
324 | 614 | </line-breakpoint> |
325 | 615 | </breakpoints> |
326 | 616 | </breakpoint-manager> |
617 | + <watches-manager> | |
618 | + <configuration name="SpringBootApplicationConfigurationType"> | |
619 | + <watch expression="receiptDetailService.getById(receiptContainerDetail.getReceiptDetailId()).getLocatingRule()" language="JAVA" /> | |
620 | + </configuration> | |
621 | + </watches-manager> | |
622 | + </component> | |
623 | + <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"> | |
625 | + <FILTER>com.huaheng.*</FILTER> | |
626 | + </SUITE> | |
327 | 627 | </component> |
328 | 628 | </project> |
329 | 629 | \ No newline at end of file |
... | ... |
src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java
... | ... | @@ -84,7 +84,9 @@ public class CheckingRegisterController extends BaseController { |
84 | 84 | PageDomain pageDomain = TableSupport.buildPageRequest(); |
85 | 85 | Integer pageNum = pageNumber; |
86 | 86 | Integer pageSize = pageDomain.getPageSize(); |
87 | - boolean isDetailNull; | |
87 | + boolean isDetailNull; //质检明细是否存在标识 | |
88 | + | |
89 | + //判断质检单明细标号是否存在,不存在显示所有质检报告 | |
88 | 90 | if (StringUtils.isNotNull(checkingRegister.getCheckDetailId())){ |
89 | 91 | isDetailNull = true; |
90 | 92 | if (checkingRegister.getCheckDetailId() == 0){ |
... | ... |
src/main/java/com/huaheng/pc/check/checkingRegister/service/CheckingRegisterService.java
... | ... | @@ -64,7 +64,7 @@ public class CheckingRegisterService extends ServiceImpl<CheckingRegisterMapper, |
64 | 64 | */ |
65 | 65 | public List<CheckingRegister> emptyList(Integer checkDetailId){ |
66 | 66 | List<CheckingRegister> list = new ArrayList<>(); |
67 | - List<DictData> dictDataList = dictDataService.selectDictDataByType("inventoryStatus"); | |
67 | + List<DictData> dictDataList = dictDataService.selectDictDataByType("inventorySts"); | |
68 | 68 | CheckDetail checkDetail = checkDetailService.getById(checkDetailId); |
69 | 69 | for (DictData dictData: dictDataList){ |
70 | 70 | CheckingRegister checkingRegister1 = new CheckingRegister(); |
... | ... |
src/main/java/com/huaheng/pc/config/FilterConfigHeader/controller/FilterConfigHeaderController.java
... | ... | @@ -98,8 +98,9 @@ public class FilterConfigHeaderController extends BaseController { |
98 | 98 | /** |
99 | 99 | * 新增规则配置主表 |
100 | 100 | */ |
101 | - @GetMapping("/add") | |
102 | - public String add() { | |
101 | + @GetMapping("/add/{type}") | |
102 | + public String add(@PathVariable("type")String type, ModelMap modelMap) { | |
103 | + modelMap.put("moduleType", type); | |
103 | 104 | return prefix + "/add"; |
104 | 105 | } |
105 | 106 | |
... | ... |
src/main/java/com/huaheng/pc/config/container/mapper/ContainerMapper.java
... | ... | @@ -14,6 +14,7 @@ public interface ContainerMapper extends BaseMapper<Container> { |
14 | 14 | |
15 | 15 | void updateLocationCodeAndStatus(@Param("warehouseCode") String warehouseCode, @Param("containerCode") String containerCode, @Param("locationCode") String locationCode, @Param("status") String status); |
16 | 16 | |
17 | + Container findAllByCode(@Param("code") String code); | |
17 | 18 | |
18 | 19 | |
19 | 20 | } |
20 | 21 | \ 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
src/main/java/com/huaheng/pc/config/material/controller/MaterialController.java
src/main/java/com/huaheng/pc/config/statusFlow/controller/StatusFlowDetailController.java
... | ... | @@ -96,6 +96,7 @@ public class StatusFlowDetailController extends BaseController { |
96 | 96 | StatusFlowHeader statusFlowHeader = statusFlowHeaderService.getById(headerId); |
97 | 97 | mmap.put("headerId",headerId); |
98 | 98 | mmap.put("headerCode", statusFlowHeader.getCode()); |
99 | + mmap.put("moduleType", statusFlowHeader.getModuleType()); | |
99 | 100 | return prefix + "/add"; |
100 | 101 | } |
101 | 102 | |
... | ... |
src/main/java/com/huaheng/pc/config/statusFlow/controller/StatusFlowHeaderController.java
... | ... | @@ -82,8 +82,9 @@ public class StatusFlowHeaderController extends BaseController { |
82 | 82 | /** |
83 | 83 | * 新增流程 |
84 | 84 | */ |
85 | - @GetMapping("/add") | |
86 | - public String add() { | |
85 | + @GetMapping("/add/{type}") | |
86 | + public String add(@PathVariable("type") String type, ModelMap modelMap) { | |
87 | + modelMap.put("moduleType", type); | |
87 | 88 | return prefix + "/add"; |
88 | 89 | } |
89 | 90 | |
... | ... |
src/main/java/com/huaheng/pc/inventory/adjustDetail/controller/adjustDetailController.java
... | ... | @@ -38,8 +38,6 @@ public class adjustDetailController extends BaseController { |
38 | 38 | |
39 | 39 | |
40 | 40 | @Resource |
41 | - private AdjustHeaderService adjustHeaderService; | |
42 | - @Resource | |
43 | 41 | private AdjustHeaderMapper adjustHeaderMapper; |
44 | 42 | @Resource |
45 | 43 | private AdjustDetailService adjustDetailService; |
... | ... | @@ -49,7 +47,7 @@ public class adjustDetailController extends BaseController { |
49 | 47 | private String prefix = "inventory/adjustDetail"; |
50 | 48 | |
51 | 49 | |
52 | - //@RequiresPermissions("inventory:cycleCount:view") | |
50 | + @RequiresPermissions("inventory:adjustDetail:view") | |
53 | 51 | @GetMapping() |
54 | 52 | public String adjustHeader() |
55 | 53 | { |
... | ... | @@ -60,7 +58,7 @@ public class adjustDetailController extends BaseController { |
60 | 58 | /** |
61 | 59 | * 查询调整单主列表 |
62 | 60 | */ |
63 | - //@RequiresPermissions("inventory:cycleCount:list") | |
61 | + @RequiresPermissions("inventory:adjustDetail:list") | |
64 | 62 | @PostMapping("/list") |
65 | 63 | @Log(title = "库存-调整",operating = "查看调整明细单", action = BusinessType.GRANT) |
66 | 64 | @ResponseBody |
... | ... | @@ -121,7 +119,7 @@ public class adjustDetailController extends BaseController { |
121 | 119 | /** |
122 | 120 | * 保存新增调整明细 |
123 | 121 | */ |
124 | - //@RequiresPermissions("inventory:cyclecountDetail:add") | |
122 | + @RequiresPermissions("inventory:adjustDetail:add") | |
125 | 123 | @Log(title = "库存-盘点", operating = "新增盘点补货明细", action = BusinessType.INSERT) |
126 | 124 | @PostMapping("/addAdjust") |
127 | 125 | @ResponseBody |
... | ... | @@ -150,7 +148,7 @@ public class adjustDetailController extends BaseController { |
150 | 148 | * 调整数量,调整库存状态 |
151 | 149 | * 调整插入库存 |
152 | 150 | */ |
153 | - //@RequiresPermissions("inventory:cyclecountAdjustDetail:addAdjust") | |
151 | + @RequiresPermissions("inventory:adjustDetail:addAdjust") | |
154 | 152 | @Log(title = "库存-调整单", operating = "调整单调整库存差异,调整数量", action = BusinessType.UPDATE) |
155 | 153 | @PostMapping("/adjustEdit") |
156 | 154 | @ResponseBody |
... | ... | @@ -177,6 +175,7 @@ public class adjustDetailController extends BaseController { |
177 | 175 | * @param ids |
178 | 176 | * @return |
179 | 177 | */ |
178 | + @RequiresPermissions("inventory:adjustDetail:adjustAgree") | |
180 | 179 | @Log(title = "库存-调整单", operating = "调整审批", action = BusinessType.OTHER) |
181 | 180 | @PostMapping("/adjustAgree") |
182 | 181 | @ResponseBody |
... | ... | @@ -199,7 +198,7 @@ public class adjustDetailController extends BaseController { |
199 | 198 | /** |
200 | 199 | * 删除调整单明细 |
201 | 200 | */ |
202 | - //@RequiresPermissions("inventory:cyclecountDetail:remove") | |
201 | + @RequiresPermissions("inventory:adjustDetail:remove") | |
203 | 202 | @Log(title = "库存-调整", operating = "删除调整单明细", action = BusinessType.DELETE) |
204 | 203 | @PostMapping( "/remove") |
205 | 204 | @ResponseBody |
... | ... | @@ -212,7 +211,6 @@ public class adjustDetailController extends BaseController { |
212 | 211 | return AjaxResult.error("单据状态不允许删除"); |
213 | 212 | } |
214 | 213 | adjustDetailService.removeById(id); |
215 | - | |
216 | 214 | return AjaxResult.success("删除成功!"); |
217 | 215 | } |
218 | 216 | |
... | ... |
src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailServiceImpl.java
... | ... | @@ -157,7 +157,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj |
157 | 157 | AjaxResult.error("该单据已调整,不允许再次调整!" ); |
158 | 158 | } |
159 | 159 | //查询调整的库存明细 |
160 | - InventoryDetail inventoryDetail = new InventoryDetail(); | |
160 | + InventoryDetail inventoryDetail ; | |
161 | 161 | //调整单中不带库存明细时不查询 |
162 | 162 | if(adjustDetail.getInventoryDetailId() != null) { |
163 | 163 | inventoryDetail = inventoryDetailService.getById(adjustDetail.getInventoryDetailId()); |
... | ... |
src/main/java/com/huaheng/pc/inventory/adjustHeader/controller/adjustHeaderController.java
... | ... | @@ -44,7 +44,7 @@ public class adjustHeaderController extends BaseController { |
44 | 44 | private String prefix = "inventory/adjustHeader"; |
45 | 45 | |
46 | 46 | |
47 | - //@RequiresPermissions("inventory:cycleCount:view") | |
47 | + @RequiresPermissions("inventory:adjustHeader:view") | |
48 | 48 | @GetMapping() |
49 | 49 | public String adjustHeader() |
50 | 50 | { |
... | ... | @@ -55,7 +55,7 @@ public class adjustHeaderController extends BaseController { |
55 | 55 | /** |
56 | 56 | * 查询调整单主列表 |
57 | 57 | */ |
58 | - //@RequiresPermissions("inventory:cycleCount:list") | |
58 | + @RequiresPermissions("inventory:adjustHeader:list") | |
59 | 59 | @PostMapping("/list") |
60 | 60 | @Log(title = "库存-调整",operating = "查看调整主单", action = BusinessType.GRANT) |
61 | 61 | @ResponseBody |
... | ... | @@ -101,7 +101,7 @@ public class adjustHeaderController extends BaseController { |
101 | 101 | /** |
102 | 102 | * 新增保存调整单主 |
103 | 103 | */ |
104 | - //@RequiresPermissions("inventory:cycleCount:add") | |
104 | + @RequiresPermissions("inventory:adjustHeader:add") | |
105 | 105 | @Log(title = "库存-调整",operating = "新增调整主单", action = BusinessType.INSERT) |
106 | 106 | @PostMapping("/addsave") |
107 | 107 | @ResponseBody |
... | ... | @@ -114,7 +114,7 @@ public class adjustHeaderController extends BaseController { |
114 | 114 | /** |
115 | 115 | * 删除调整单主 |
116 | 116 | */ |
117 | - //@RequiresPermissions("inventory:cycleCount:remove") | |
117 | + @RequiresPermissions("inventory:adjustHeader:remove") | |
118 | 118 | @Log(title = "库存-调整",operating = "删除调整主单", action = BusinessType.DELETE) |
119 | 119 | @PostMapping( "/remove") |
120 | 120 | @ResponseBody |
... | ... | @@ -124,7 +124,7 @@ public class adjustHeaderController extends BaseController { |
124 | 124 | return AjaxResult.error("id不能为空"); |
125 | 125 | for (Integer id : Convert.toIntArray(ids)) |
126 | 126 | { |
127 | - AjaxResult result = adjustHeaderService.delete(id); | |
127 | + AjaxResult result = adjustHeaderService.deleteHeader(id); | |
128 | 128 | if(result.code!=200){ |
129 | 129 | return result; |
130 | 130 | } |
... | ... | @@ -136,7 +136,7 @@ public class adjustHeaderController extends BaseController { |
136 | 136 | * 调整单打印 |
137 | 137 | * @return |
138 | 138 | */ |
139 | - //@RequiresPermissions("inventory:cyclecountAdjust:report") | |
139 | + @RequiresPermissions("inventory:adjustHeader:report") | |
140 | 140 | @GetMapping("/report/{id}") |
141 | 141 | public String report(@PathVariable("id") Integer id, ModelMap mmap) |
142 | 142 | { |
... | ... |
src/main/java/com/huaheng/pc/inventory/adjustHeader/service/AdjustHeaderService.java
src/main/java/com/huaheng/pc/inventory/adjustHeader/service/AdjustHeaderServiceImpl.java
1 | 1 | package com.huaheng.pc.inventory.adjustHeader.service; |
2 | 2 | |
3 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |
4 | +import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |
3 | 5 | import com.huaheng.common.utils.StringUtils; |
4 | 6 | import com.huaheng.common.utils.security.ShiroUtils; |
5 | 7 | import com.huaheng.framework.web.domain.AjaxResult; |
8 | +import com.huaheng.pc.config.warehouse.domain.Warehouse; | |
6 | 9 | import com.huaheng.pc.inventory.adjustDetail.domain.AdjustDetail; |
10 | +import com.huaheng.pc.inventory.adjustDetail.service.AdjustDetailService; | |
7 | 11 | import org.springframework.stereotype.Service; |
8 | 12 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
9 | 13 | import com.huaheng.pc.inventory.adjustHeader.domain.AdjustHeader; |
... | ... | @@ -13,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional; |
13 | 17 | import javax.annotation.Resource; |
14 | 18 | import java.text.SimpleDateFormat; |
15 | 19 | import java.util.Date; |
20 | +import java.util.List; | |
16 | 21 | |
17 | 22 | @Service |
18 | 23 | public class AdjustHeaderServiceImpl extends ServiceImpl<AdjustHeaderMapper, AdjustHeader> implements AdjustHeaderService { |
... | ... | @@ -20,7 +25,8 @@ public class AdjustHeaderServiceImpl extends ServiceImpl<AdjustHeaderMapper, Adj |
20 | 25 | |
21 | 26 | @Resource |
22 | 27 | private AdjustHeaderMapper adjustHeaderMapper; |
23 | - | |
28 | + @Resource | |
29 | + private AdjustDetailService adjustDetailService; | |
24 | 30 | |
25 | 31 | |
26 | 32 | |
... | ... | @@ -48,22 +54,29 @@ public class AdjustHeaderServiceImpl extends ServiceImpl<AdjustHeaderMapper, Adj |
48 | 54 | } |
49 | 55 | |
50 | 56 | /** |
51 | - * 删除 | |
52 | - * 空缺 | |
57 | + * 调整主单删除 | |
53 | 58 | * @param id |
54 | 59 | * @return |
55 | 60 | */ |
61 | + @Transactional | |
56 | 62 | @Override |
57 | - public AjaxResult delete(Integer id) { | |
63 | + public AjaxResult deleteHeader(Integer id) { | |
58 | 64 | AdjustHeader adjustHeader = this.getById(id); |
59 | 65 | if(adjustHeader == null){ |
60 | 66 | return AjaxResult.error("id为"+id.toString()+"的调整单不存在出,操作中止"); |
61 | 67 | } |
62 | - | |
63 | - //批量删除子单据 | |
68 | + //判断该主单下有没又存在子单,没有直接删除主单,有则不能删除 | |
64 | 69 | AdjustDetail temp = new AdjustDetail(); |
65 | 70 | temp.setAdjustCode(adjustHeader.getCode()); |
71 | + temp.setCompanyCode(adjustHeader.getCompanyCode()); | |
72 | + temp.setWarehouseCode(adjustHeader.getWarehouseCode()); | |
73 | + LambdaQueryWrapper<AdjustDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(temp); | |
74 | + List<AdjustDetail> adjustDetails = adjustDetailService.list(lambdaQueryWrapper); | |
75 | + if(adjustDetails.size() > 0){ | |
76 | + throw new SecurityException("该主单存在明细,无法删除,操作失败!"); | |
77 | + } | |
66 | 78 | |
79 | + adjustHeaderMapper.deleteById(id); //直接删主单 | |
67 | 80 | return AjaxResult.success("删除成功"); |
68 | 81 | } |
69 | 82 | |
... | ... |
src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java
... | ... | @@ -58,9 +58,10 @@ public class CycleCountDetailController extends BaseController { |
58 | 58 | |
59 | 59 | |
60 | 60 | |
61 | - | |
62 | 61 | private String prefix = "inventory/cycleCountDetail"; |
63 | 62 | |
63 | + | |
64 | + @RequiresPermissions("inventory:cyclecountDetail:view") | |
64 | 65 | @GetMapping() |
65 | 66 | public String cyclecountHeader() |
66 | 67 | { |
... | ... | @@ -70,7 +71,7 @@ public class CycleCountDetailController extends BaseController { |
70 | 71 | /** |
71 | 72 | * 查询盘点单主列表 |
72 | 73 | */ |
73 | - //@RequiresPermissions("inventory:cycleCount:list") | |
74 | + @RequiresPermissions("inventory:cycleCountDetail:list") | |
74 | 75 | @PostMapping("/list") |
75 | 76 | @Log(title = "库存-盘点",operating = "查看盘点明细", action = BusinessType.GRANT) |
76 | 77 | @ResponseBody |
... | ... | @@ -143,19 +144,22 @@ public class CycleCountDetailController extends BaseController { |
143 | 144 | /** |
144 | 145 | * 新增保存盘点明细 |
145 | 146 | */ |
146 | - //@RequiresPermissions("inventory:cyclecountDetail:add") | |
147 | + @RequiresPermissions("inventory:cyclecountDetail:add") | |
147 | 148 | @Log(title = "库存-盘点", operating = "新增盘点补货明细", action = BusinessType.INSERT) |
148 | 149 | @PostMapping("/add") |
149 | 150 | @ResponseBody |
150 | - public AjaxResult addSave(String cycleCountHeadCode, Integer[] inventoryDetailIdIds) | |
151 | + public AjaxResult addSave(String cycleCountHeadCode, Integer[] inventoryDetailIds) | |
151 | 152 | { |
152 | - return cycleCountDetailService.addDetails(cycleCountHeadCode,inventoryDetailIdIds); | |
153 | + if(inventoryDetailIds == null){ | |
154 | + return AjaxResult.error("盘点的库存ID不能为空!"); | |
155 | + } | |
156 | + return cycleCountDetailService.addDetails(cycleCountHeadCode,inventoryDetailIds); | |
153 | 157 | } |
154 | 158 | |
155 | 159 | /** |
156 | 160 | * 删除盘点明细 |
157 | 161 | */ |
158 | - //@RequiresPermissions("inventory:cyclecountDetail:remove") | |
162 | + @RequiresPermissions("inventory:cyclecountDetail:remove") | |
159 | 163 | @Log(title = "库存-盘点", operating = "删除盘点明细", action = BusinessType.DELETE) |
160 | 164 | @PostMapping( "/remove") |
161 | 165 | @ResponseBody |
... | ... | @@ -194,7 +198,7 @@ public class CycleCountDetailController extends BaseController { |
194 | 198 | } |
195 | 199 | |
196 | 200 | /**生成全部盘点任务*/ |
197 | - //@RequiresPermissions("inventory:cyclecountDetail:createTask") | |
201 | + @RequiresPermissions("inventory:cyclecountDetail:createTask") | |
198 | 202 | @PostMapping("/createCycleCountTaskByHeadId") |
199 | 203 | @ResponseBody |
200 | 204 | public AjaxResult createCycleCountTaskByHeadId(String cycleCountHeadCode){ |
... | ... | @@ -205,7 +209,7 @@ public class CycleCountDetailController extends BaseController { |
205 | 209 | } |
206 | 210 | |
207 | 211 | /**生成单条盘点任务*/ |
208 | - //@RequiresPermissions("inventory:cyclecountDetail:createTask") | |
212 | + @RequiresPermissions("inventory:cyclecountDetail:createTask") | |
209 | 213 | @PostMapping("/createCycleCoutTaskByDetailId") |
210 | 214 | @ResponseBody |
211 | 215 | public AjaxResult createCycleCoutTaskByDetailId(Integer cycleCoutdetailId){ |
... | ... | @@ -221,10 +225,11 @@ public class CycleCountDetailController extends BaseController { |
221 | 225 | * @param qty |
222 | 226 | * @return |
223 | 227 | */ |
224 | - //@RequiresPermissions("inventory:cyclecountDetail:confirm") | |
228 | + @RequiresPermissions("inventory:cyclecountDetail:confirm") | |
225 | 229 | @PostMapping("/confirmGapQty") |
226 | 230 | @ResponseBody |
227 | 231 | public AjaxResult confirmGapQty(Integer detailId, BigDecimal qty){ |
232 | + | |
228 | 233 | return cycleCountDetailService.confirmGapQty(detailId,qty); |
229 | 234 | } |
230 | 235 | |
... | ... | @@ -233,11 +238,13 @@ public class CycleCountDetailController extends BaseController { |
233 | 238 | * @param cycleCountHeadCode |
234 | 239 | * @return |
235 | 240 | */ |
236 | - //@RequiresPermissions("inventory:cyclecountDetail:cyclecountRepeat") | |
241 | + @RequiresPermissions("inventory:cyclecountDetail:cyclecountRepeat") | |
237 | 242 | @PostMapping("/createCyclecountWithGapQty") |
238 | 243 | @ResponseBody |
239 | 244 | public AjaxResult createCyclecountWithGapQty(String cycleCountHeadCode){ |
240 | - | |
245 | + if(StringUtils.isEmpty(cycleCountHeadCode)){ | |
246 | + return AjaxResult.error("需要复盘的盘点单编码不能为空!"); | |
247 | + } | |
241 | 248 | return cycleCountDetailService.createCyclecountWithGapQty(cycleCountHeadCode); |
242 | 249 | } |
243 | 250 | |
... | ... |
src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java
... | ... | @@ -48,10 +48,6 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap |
48 | 48 | |
49 | 49 | |
50 | 50 | |
51 | - | |
52 | - | |
53 | - | |
54 | - | |
55 | 51 | /** |
56 | 52 | * 执行任务修改状态为10 |
57 | 53 | * @param detailid |
... | ... | @@ -131,7 +127,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap |
131 | 127 | ccd.setCompanyCode(inventoryDetail.getCompanyCode()); |
132 | 128 | ccd.setInventorySts(inventoryDetail.getInventorySts()); |
133 | 129 | ccd.setCountId(inventoryDetail.getId()); |
134 | - ccd.setEnableStatus(5); | |
130 | + //ccd.setEnableStatus(1); | |
135 | 131 | ccd.setLocationCode(inventoryDetail.getLocationCode()); |
136 | 132 | ccd.setContainerCode(inventoryDetail.getContainerCode()); |
137 | 133 | ccd.setMaterialCode(inventoryDetail.getMaterialCode()); |
... | ... | @@ -226,10 +222,10 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap |
226 | 222 | LambdaQueryWrapper<Location> lambdaQueryWrapper = Wrappers.lambdaQuery(temp); |
227 | 223 | Location loc = locationService.getOne(lambdaQueryWrapper); |
228 | 224 | if(!loc.getStatus().equals("empty")){ |
229 | - return AjaxResult.error(cycleCountDetail.getLocationCode()+"状态非空闲,操作失败"); | |
225 | + return AjaxResult.error(cycleCountDetail.getLocationCode()+"库位不在空闲状态,请先完成其他任务,操作失败!"); | |
230 | 226 | } |
231 | 227 | if(StringUtils.isEmpty(loc.getContainerCode())){ |
232 | - return AjaxResult.error(cycleCountDetail.getLocationCode()+"没有托盘,操作失败"); | |
228 | + return AjaxResult.error(cycleCountDetail.getLocationCode()+"库位中没有容器,操作失败!"); | |
233 | 229 | } |
234 | 230 | |
235 | 231 | //查询任务头和明细有相同容器,没有就新增任务头和明细 |
... | ... | @@ -363,9 +359,9 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap |
363 | 359 | if (inventoryDetail == null) { |
364 | 360 | return AjaxResult.error("没有对应库存信息,请重建盘点单"); |
365 | 361 | } |
366 | - if(qty.compareTo(inventoryDetail.getTaskQty()) < 0){ | |
362 | + /*if(qty.compareTo(inventoryDetail.getTaskQty()) < 0){ | |
367 | 363 | return AjaxResult.error("登记数量不能小于任务分配数量"); |
368 | - } | |
364 | + }*/ | |
369 | 365 | } |
370 | 366 | cyclecountDetail.setCountedQty(qty); |
371 | 367 | cyclecountDetail.setGapQty(qty.subtract(cyclecountDetail.getSystemQty())); |
... | ... | @@ -390,7 +386,6 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap |
390 | 386 | public AjaxResult createCyclecountWithGapQty(String cycleCountHeaderCode) { |
391 | 387 | /*找出实盘登记中数量有差异的,重新生成盘点单*/ |
392 | 388 | |
393 | - | |
394 | 389 | CycleCountHeader cycleCountHeader = new CycleCountHeader(); |
395 | 390 | cycleCountHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); |
396 | 391 | cycleCountHeader.setCode(cycleCountHeaderCode); |
... | ... | @@ -409,22 +404,30 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap |
409 | 404 | if(countHeader != null){ |
410 | 405 | return AjaxResult.error("该单据已生成复盘单,请勿重复生成!"); |
411 | 406 | } |
407 | + //没有盘点明细或明细都没有差异时不生成复盘单 | |
408 | + | |
412 | 409 | CycleCountDetail cycleCountDetail = new CycleCountDetail(); |
413 | - cycleCountDetail.setTaskHeaderId(cycleCountHeader.getId()); | |
410 | + cycleCountDetail.setCycleCountHeadCode(cycleCountHeaderCode); | |
414 | 411 | cycleCountDetail.setWarehouseCode(cycleCountHeader.getWarehouseCode()); |
415 | 412 | cycleCountDetail.setCompanyCode(cycleCountHeader.getCompanyCode()); |
416 | - LambdaQueryWrapper<CycleCountDetail> cycleCountDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); | |
413 | + LambdaQueryWrapper<CycleCountDetail> cycleCountDetailLambdaQueryWrapper = Wrappers.lambdaQuery(cycleCountDetail); | |
417 | 414 | List<CycleCountDetail> cycleCountDetails = this.list(cycleCountDetailLambdaQueryWrapper);//明细 |
418 | 415 | if(cycleCountDetails.size() == 0){ |
419 | - throw new SecurityException("没有明细!"); | |
416 | + throw new SecurityException("没有盘点明细条目,操作失败!"); | |
420 | 417 | } |
421 | 418 | //生成复盘盘点主单 |
422 | - cycleCountHeader.setCode(cycleCountHeaderService.createCode()); | |
423 | - cycleCountHeader.setRound(cycleCountHeader.getRound() + 1);//盘点轮次+1 | |
424 | - cycleCountHeader.setCreated(new Date()); | |
425 | - cycleCountHeader.setCreatedBy(ShiroUtils.getLoginName()); | |
426 | - cycleCountHeader.setSourceCode(cycleCountHeaderCode);//源盘点单号 | |
427 | - if(!cycleCountHeaderService.saveOrUpdate(cycleCountHeader)){ | |
419 | + CycleCountHeader cycleCountHeader1 = new CycleCountHeader(); | |
420 | + String cycleCountHeaderCode1 = cycleCountHeaderService.createCode(); | |
421 | + cycleCountHeader1.setCode(cycleCountHeaderCode1); | |
422 | + cycleCountHeader1.setCompanyCode(cycleCountHeader.getCompanyCode()); | |
423 | + cycleCountHeader1.setWarehouseCode(cycleCountHeader.getWarehouseCode()); | |
424 | + cycleCountHeader1.setRound(cycleCountHeader.getRound() + 1);//盘点轮次+1 | |
425 | + cycleCountHeader1.setCountType(cycleCountHeader.getCountType()); | |
426 | + cycleCountHeader1.setCreated(new Date()); | |
427 | + cycleCountHeader1.setCreatedBy(ShiroUtils.getLoginName()); | |
428 | + cycleCountHeader1.setLastUpdatedBy(ShiroUtils.getLoginName()); | |
429 | + cycleCountHeader1.setSourceCode(cycleCountHeaderCode);//源盘点单号 | |
430 | + if(!cycleCountHeaderService.saveOrUpdate(cycleCountHeader1)){ | |
428 | 431 | throw new ServiceException("复盘主单生成失败!"); |
429 | 432 | } |
430 | 433 | //获取差异数量不为零的子单重新再生成盘点单 |
... | ... | @@ -433,20 +436,23 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap |
433 | 436 | //getGapQty不能为null默认值为0 |
434 | 437 | int f = item.getGapQty().compareTo(BigDecimal.ZERO); |
435 | 438 | if(f > 0){ |
439 | + item.setCycleCountHeadCode(cycleCountHeaderCode1); | |
436 | 440 | item.setCountedQty(null); |
437 | 441 | item.setGapQty(BigDecimal.ZERO); |
442 | + item.setEnableStatus(1); | |
438 | 443 | item.setCreatedBy(ShiroUtils.getLoginName()); |
439 | 444 | item.setCreated(new Date()); |
440 | 445 | cycleCountDetailList.add(item); |
441 | 446 | } |
442 | - | |
443 | 447 | } |
444 | 448 | if(cycleCountDetailList.size() == 0){ |
445 | - throw new SecurityException("该单据没有符合复盘条件的明细!"); | |
449 | + throw new SecurityException("该主单据没有符合复盘条件的明细!"); | |
446 | 450 | } |
447 | - if(!this.saveBatch(cycleCountDetailList)){ | |
451 | + Boolean j = this.saveBatch(cycleCountDetailList); | |
452 | + if(j == false ){ | |
448 | 453 | throw new ServiceException("复盘明细子单生成失败"); |
449 | 454 | } |
455 | + | |
450 | 456 | return AjaxResult.success("生成复盘单成功!"); |
451 | 457 | } |
452 | 458 | |
... | ... |
src/main/java/com/huaheng/pc/inventory/cycleCountHeader/controller/CycleCountHeaderController.java
... | ... | @@ -44,15 +44,12 @@ public class CycleCountHeaderController extends BaseController { |
44 | 44 | private CycleCountHeaderService cycleCountHeaderService; |
45 | 45 | @Resource |
46 | 46 | private CycleCountDetailService cycleCountDetailService; |
47 | - @Resource | |
48 | - private AdjustHeaderService adjustHeaderService; | |
49 | - | |
50 | 47 | |
51 | 48 | |
52 | 49 | private String prefix = "inventory/cycleCountHeader"; |
53 | 50 | |
54 | 51 | |
55 | - //@RequiresPermissions("inventory:cycleCount:view") | |
52 | + @RequiresPermissions("inventory:cycleCountHeader:view") | |
56 | 53 | @GetMapping() |
57 | 54 | public String cyclecountHeader() |
58 | 55 | { |
... | ... | @@ -62,7 +59,7 @@ public class CycleCountHeaderController extends BaseController { |
62 | 59 | /** |
63 | 60 | * 查询盘点单主列表 |
64 | 61 | */ |
65 | - //@RequiresPermissions("inventory:cycleCount:list") | |
62 | + @RequiresPermissions("inventory:cycleCountHeader:list") | |
66 | 63 | @PostMapping("/list") |
67 | 64 | @Log(title = "库存-盘点",operating = "查看盘点主单", action = BusinessType.GRANT) |
68 | 65 | @ResponseBody |
... | ... | @@ -95,6 +92,9 @@ public class CycleCountHeaderController extends BaseController { |
95 | 92 | } |
96 | 93 | |
97 | 94 | } |
95 | + | |
96 | + | |
97 | + | |
98 | 98 | /** |
99 | 99 | * 新增盘点单主 |
100 | 100 | */ |
... | ... | @@ -107,7 +107,7 @@ public class CycleCountHeaderController extends BaseController { |
107 | 107 | /** |
108 | 108 | * 新增保存盘点单主 |
109 | 109 | */ |
110 | - //@RequiresPermissions("inventory:cycleCount:add") | |
110 | + @RequiresPermissions("inventory:cycleCountHeader:add") | |
111 | 111 | @Log(title = "库存-盘点",operating = "新增盘点主单", action = BusinessType.INSERT) |
112 | 112 | @PostMapping("/add") |
113 | 113 | @ResponseBody |
... | ... | @@ -137,7 +137,7 @@ public class CycleCountHeaderController extends BaseController { |
137 | 137 | /** |
138 | 138 | * 修改保存盘点单主 |
139 | 139 | */ |
140 | - //@RequiresPermissions("inventory:cycleCount:edit") | |
140 | + @RequiresPermissions("inventory:cycleCountHeader:edit") | |
141 | 141 | @Log(title = "库存-盘点",operating = "修改盘点主单", action = BusinessType.UPDATE) |
142 | 142 | @PostMapping("/edit") |
143 | 143 | @ResponseBody |
... | ... | @@ -151,7 +151,7 @@ public class CycleCountHeaderController extends BaseController { |
151 | 151 | /** |
152 | 152 | * 删除盘点单主 |
153 | 153 | */ |
154 | - //@RequiresPermissions("inventory:cycleCount:remove") | |
154 | + @RequiresPermissions("inventory:cycleCountHeader:remove") | |
155 | 155 | @Log(title = "库存-盘点",operating = "删除盘点主单", action = BusinessType.DELETE) |
156 | 156 | @PostMapping( "/remove") |
157 | 157 | @ResponseBody |
... | ... | @@ -173,7 +173,7 @@ public class CycleCountHeaderController extends BaseController { |
173 | 173 | * |
174 | 174 | * 生成调整单 |
175 | 175 | * */ |
176 | - //@RequiresPermissions("inventory:cyclecountHead:addAdjust") | |
176 | + @RequiresPermissions("inventory:cyclecountHead:addAdjust") | |
177 | 177 | @Log(title = "库存-盘点", operating = "新增盘点差异调整单", action = BusinessType.INSERT) |
178 | 178 | @PostMapping("/goAdjust") |
179 | 179 | @ResponseBody |
... | ... | @@ -187,7 +187,7 @@ public class CycleCountHeaderController extends BaseController { |
187 | 187 | * 盘点单报表打印 |
188 | 188 | * @return |
189 | 189 | */ |
190 | - //@RequiresPermissions("inventory:cycleCount:report") | |
190 | + @RequiresPermissions("inventory:cycleCountHeader:report") | |
191 | 191 | @GetMapping("/report/{id}") |
192 | 192 | public String report(@PathVariable("id") Integer id, ModelMap mmap) |
193 | 193 | { |
... | ... |
src/main/java/com/huaheng/pc/inventory/cycleCountHeader/service/CycleCountHeaderServiceImpl.java
... | ... | @@ -169,12 +169,10 @@ public class CycleCountHeaderServiceImpl extends ServiceImpl<CycleCountHeaderMap |
169 | 169 | |
170 | 170 | //查询该条盘点单头 id |
171 | 171 | CycleCountHeader cyclecountHeader = cycleCountHeaderMapper.selectById(id); |
172 | - | |
173 | - if(cyclecountHeader.getStatusCyc() >= 35){ | |
172 | + if(cyclecountHeader.getStatusCyc() < 100){ | |
174 | 173 | //查询是否已生成差异单 |
175 | - throw new ServiceException("该条盘点单无法生成调整单,请检查状态!"); | |
174 | + throw new ServiceException("该条盘点单无法生成调整单,必须为盘点任务完成,请检查状态!"); | |
176 | 175 | } |
177 | - | |
178 | 176 | AdjustHeader adjustHeader = new AdjustHeader(); |
179 | 177 | adjustHeader.setWarehouseCode(ShiroUtils.getWarehouseCode());//仓库 |
180 | 178 | adjustHeader.setCode(adjustHeaderService.createCode());//生成差异单号 |
... | ... | @@ -197,6 +195,7 @@ public class CycleCountHeaderServiceImpl extends ServiceImpl<CycleCountHeaderMap |
197 | 195 | //AdjustHeader adjust = adjustHeaderService.getById(adjustHeader.getId()); |
198 | 196 | //循环明细条目,查找符合条件的数据写入调整单明细 |
199 | 197 | AdjustDetail adjustDetail = new AdjustDetail(); |
198 | + List<AdjustDetail> adjustDetails = new ArrayList<>(); | |
200 | 199 | for(CycleCountDetail item:cycleCountDetailList){ |
201 | 200 | //BigDecimal的比较 .compareTo(BigDecimal.ZERO) != 0 |
202 | 201 | |
... | ... | @@ -224,14 +223,16 @@ public class CycleCountHeaderServiceImpl extends ServiceImpl<CycleCountHeaderMap |
224 | 223 | adjustDetail.setCreated(new Date()); |
225 | 224 | adjustDetail.setCreatedBy(ShiroUtils.getLoginName()); |
226 | 225 | //adjustDetail.setStatus(0);//状态 |
227 | - | |
228 | - adjustDetailService.save(adjustDetail); | |
226 | + adjustDetails.add(adjustDetail); | |
227 | + //adjustDetailService.save(adjustDetail); | |
229 | 228 | } |
230 | - | |
231 | 229 | } |
232 | - | |
230 | + if(adjustDetails.size() == 0 ){ | |
231 | + throw new SecurityException("该盘点单没有差异数据条目,无法生成调整单!"); | |
232 | + } | |
233 | + adjustDetailService.saveBatch(adjustDetails); | |
233 | 234 | //修改盘点主单状态为已生成差异单 |
234 | - cyclecountHeader.setStatusCyc(35); | |
235 | + cyclecountHeader.setStatusCyc(101); | |
235 | 236 | this.saveOrUpdate(cyclecountHeader); |
236 | 237 | |
237 | 238 | return AjaxResult.success("差异调整及明细单生成完毕!"); |
... | ... |
src/main/java/com/huaheng/pc/receipt/receiptContainerDetail/service/ReceiptContainerDetailServiceImpl.java
... | ... | @@ -59,6 +59,9 @@ public class ReceiptContainerDetailServiceImpl extends ServiceImpl<ReceiptContai |
59 | 59 | ReceiptDetail receiptDetail = receiptDetailService.getById(receiptContainerDetail.getReceiptDetailId()); |
60 | 60 | receiptDetail.setOpenQty(receiptDetail.getOpenQty().subtract(receiptContainerDetail.getQty())); |
61 | 61 | |
62 | + //如果为临时容器,则删除 | |
63 | + receiptContainerDetail.getContainerCode(); | |
64 | + | |
62 | 65 | if (!receiptDetailService.updateById(receiptDetail)){throw new SecurityException("回滚入库单明细失败");} |
63 | 66 | //删除组盘明细 |
64 | 67 | if (!this.removeById(id)){ throw new ServiceException("回滚入库组盘失败");} |
... | ... | @@ -70,12 +73,15 @@ public class ReceiptContainerDetailServiceImpl extends ServiceImpl<ReceiptContai |
70 | 73 | throw new ServiceException("删除入库组盘头失败"); |
71 | 74 | } |
72 | 75 | } |
76 | + | |
73 | 77 | //查询入库头表 |
74 | 78 | LambdaQueryWrapper<ReceiptContainerDetail> containerDetailLambda = Wrappers.lambdaQuery(); |
75 | 79 | containerDetailLambda.eq(ReceiptContainerDetail::getReceiptId, receiptContainerDetail.getReceiptId()); |
76 | 80 | List<ReceiptContainerDetail> containerDetailList = this.list(containerDetailLambda); |
81 | + | |
82 | + | |
77 | 83 | //如果入库组盘没有该入库单的组盘信息,回滚入库单状态 |
78 | - if (containerDetailList == null){ | |
84 | + if (containerDetailList.size() == 0){ | |
79 | 85 | ReceiptHeader receiptHeader = new ReceiptHeader(); |
80 | 86 | receiptHeader.setId(receiptContainerDetail.getReceiptId()); |
81 | 87 | receiptHeader.setFirstStatus(200); |
... | ... |
src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java
... | ... | @@ -72,6 +72,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai |
72 | 72 | //检查容器编码合法性 |
73 | 73 | Integer taskType = checkContainer(containerCode, detail.getMaterialCode()); |
74 | 74 | if (taskType == 1){ |
75 | + //创建临时容器 | |
75 | 76 | containerCode = createContainer(); |
76 | 77 | taskType = 100; |
77 | 78 | }else { |
... | ... | @@ -97,6 +98,8 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai |
97 | 98 | receiptContainerHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); |
98 | 99 | receiptContainerHeader.setCompanyCode(receiptDetail.getCompanyCode()); |
99 | 100 | receiptContainerHeader.setContainerCode(containerCode); |
101 | + Container container = containerService.findAllByCode(containerCode); | |
102 | + receiptContainerHeader.setContainerType(container.getContainerType()); | |
100 | 103 | receiptContainerHeader.setTaskType(String.valueOf(taskType)); |
101 | 104 | receiptContainerHeader.setProjectNo(receiptDetail.getProjectNo()); |
102 | 105 | receiptContainerHeader.setToLocation(locationCode); |
... | ... | @@ -128,6 +131,11 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai |
128 | 131 | receiptContainerDetailAdd(receiptContainerHeaders.get(0).getId(), receiptDetail, qty, containerCode, locationCode); |
129 | 132 | //如果单据数量等于已收数量,更新入库详情状态和入库单状态 |
130 | 133 | if (receiptDetail.getTotalQty() == receiptDetail.getOpenQty()){ |
134 | + receiptDetail.setProcessStamp("200"); | |
135 | + if (!receiptDetailService.updateById(receiptDetail)){ | |
136 | + throw new ServiceException("更新入库详情处理标记失败"); | |
137 | + } | |
138 | + | |
131 | 139 | ReceiptDetail receiptDetail1 = receiptDetailService.queryflow(receiptDetail); |
132 | 140 | if (!receiptDetailService.updateById(receiptDetail1)){ |
133 | 141 | throw new ServiceException("更新入库详情下一流程失败"); |
... | ... | @@ -182,7 +190,9 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai |
182 | 190 | } |
183 | 191 | } |
184 | 192 | //删除入库组盘头表 |
185 | - this.removeById(id); | |
193 | + if (!this.removeById(id)){ | |
194 | + throw new ServiceException("删除入库组盘头表失败"); | |
195 | + } | |
186 | 196 | } else { |
187 | 197 | throw new ServiceException("已生成任务不允许取消"); |
188 | 198 | } |
... | ... |
src/main/java/com/huaheng/pc/receipt/receiptDetail/domain/ReceiptDetail.java
... | ... | @@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty; |
6 | 6 | import java.io.Serializable; |
7 | 7 | import java.math.BigDecimal; |
8 | 8 | import java.util.Date; |
9 | + | |
10 | +import io.swagger.annotations.ApiParam; | |
9 | 11 | import lombok.Data; |
10 | 12 | |
11 | 13 | @ApiModel(value = "com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail") |
... | ... | @@ -341,4 +343,11 @@ public class ReceiptDetail implements Serializable { |
341 | 343 | @ApiModelProperty(value = "是否删除") |
342 | 344 | private Boolean deleted; |
343 | 345 | |
346 | + /** | |
347 | + * 流程编码 | |
348 | + */ | |
349 | + @TableField(value = "statusFlowCode") | |
350 | + @ApiModelProperty(value = "流程编码") | |
351 | + private String statusFlowCode; | |
352 | + | |
344 | 353 | } |
345 | 354 | \ No newline at end of file |
... | ... |
src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailServiceImpl.java
... | ... | @@ -7,6 +7,10 @@ import com.huaheng.common.support.Convert; |
7 | 7 | import com.huaheng.common.utils.StringUtils; |
8 | 8 | import com.huaheng.common.utils.security.ShiroUtils; |
9 | 9 | import com.huaheng.framework.web.domain.AjaxResult; |
10 | +import com.huaheng.pc.check.checkHeader.domain.CheckHeader; | |
11 | +import com.huaheng.pc.check.checkHeader.service.CheckHeaderService; | |
12 | +import com.huaheng.pc.config.configValue.domain.ConfigValue; | |
13 | +import com.huaheng.pc.config.configValue.service.ConfigValueService; | |
10 | 14 | import com.huaheng.pc.config.material.domain.Material; |
11 | 15 | import com.huaheng.pc.config.material.service.MaterialService; |
12 | 16 | import com.huaheng.pc.config.materialType.domain.MaterialType; |
... | ... | @@ -19,6 +23,7 @@ import com.huaheng.pc.config.statusFlow.domain.StatusFlowDetail; |
19 | 23 | import com.huaheng.pc.config.statusFlow.service.StatusFlowDetailService; |
20 | 24 | import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; |
21 | 25 | import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService; |
26 | +import com.huaheng.pc.system.config.domain.Config; | |
22 | 27 | import com.huaheng.pc.system.dict.domain.DictData; |
23 | 28 | import com.huaheng.pc.system.dict.service.IDictDataService; |
24 | 29 | import org.aspectj.weaver.loadtime.Aj; |
... | ... | @@ -48,6 +53,10 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R |
48 | 53 | private ReceiptPreferenceService receiptPreferenceService; |
49 | 54 | @Resource |
50 | 55 | private IDictDataService dictDataService; |
56 | + @Resource | |
57 | + private CheckHeaderService checkHeaderService; | |
58 | + @Resource | |
59 | + private ConfigValueService configValueService; | |
51 | 60 | |
52 | 61 | /** |
53 | 62 | * 新增入库明细 |
... | ... | @@ -163,6 +172,18 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R |
163 | 172 | return receiptDetail; |
164 | 173 | } |
165 | 174 | |
175 | + //如果入库明细绑定了入库流程则从入库明细中选择流程 | |
176 | + if ( StringUtils.isNotEmpty(receiptDetail.getStatusFlowCode())){ | |
177 | + List<StatusFlowDetail> statusFlowDetails = statusFlowDetailService.queryStatusFlowDetail(receiptDetail.getStatusFlowCode()); | |
178 | + String status = nextStatusFlow(statusFlowDetails, receiptDetail.getProcessStamp()); | |
179 | + //在状态到达时候是判断是否要质检 | |
180 | + if ("200".equals(status) && inspection(receiptDetail)){ | |
181 | + receiptDetail.setProcessStamp("180"); | |
182 | + } else { | |
183 | + receiptDetail.setProcessStamp(status); | |
184 | + } | |
185 | + return receiptDetail; | |
186 | + } | |
166 | 187 | //查询头表信息 |
167 | 188 | LambdaQueryWrapper<ReceiptHeader> lambdaReceiptHeader = Wrappers.lambdaQuery(); |
168 | 189 | lambdaReceiptHeader.eq(ReceiptHeader::getCode, receiptDetail.getReceiptCode()); |
... | ... | @@ -183,13 +204,23 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R |
183 | 204 | //物料是否有入库流程 |
184 | 205 | List<StatusFlowDetail> statusFlowDetails = statusFlowDetailService.queryStatusFlowDetail(receiptType.getReceiptFlow()); |
185 | 206 | String status = nextStatusFlow(statusFlowDetails, receiptDetail.getProcessStamp()); |
186 | - receiptDetail.setProcessStamp(status); | |
207 | + //在状态到达时候是判断是否要质检 | |
208 | + if ("200".equals(status) && inspection(receiptDetail)){ | |
209 | + receiptDetail.setProcessStamp("180"); | |
210 | + } else { | |
211 | + receiptDetail.setProcessStamp(status); | |
212 | + } | |
187 | 213 | return receiptDetail; |
188 | 214 | } else if (material.getReceivingFlow() != null){ |
189 | 215 | //物料是否有入库流程 |
190 | 216 | List<StatusFlowDetail> statusFlowDetails = statusFlowDetailService.queryStatusFlowDetail(material.getReceivingFlow()); |
191 | 217 | String status = nextStatusFlow(statusFlowDetails, receiptDetail.getProcessStamp()); |
192 | - receiptDetail.setProcessStamp(status); | |
218 | + //在状态到达时候是判断是否要质检 | |
219 | + if ("200".equals(status) && inspection(receiptDetail)){ | |
220 | + receiptDetail.setProcessStamp("180"); | |
221 | + } else { | |
222 | + receiptDetail.setProcessStamp(status); | |
223 | + } | |
193 | 224 | return receiptDetail; |
194 | 225 | } else { |
195 | 226 | //该物料类别是否有入库流程 |
... | ... | @@ -199,16 +230,31 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R |
199 | 230 | if (materialType.getReceivingFlow() != null) { |
200 | 231 | List<StatusFlowDetail> statusFlowDetails = statusFlowDetailService.queryStatusFlowDetail(materialType.getReceivingFlow()); |
201 | 232 | String status = nextStatusFlow(statusFlowDetails, receiptDetail.getProcessStamp()); |
202 | - receiptDetail.setProcessStamp(status); | |
233 | + //在状态到达时候是判断是否要质检 | |
234 | + if ("200".equals(status) && inspection(receiptDetail)){ | |
235 | + receiptDetail.setProcessStamp("180"); | |
236 | + } else { | |
237 | + receiptDetail.setProcessStamp(status); | |
238 | + } | |
203 | 239 | return receiptDetail; |
204 | 240 | } else { |
241 | + //查询系统参数配置中绑定的入库首选项A | |
242 | + LambdaQueryWrapper<ConfigValue> lambdaQueryWrapper = Wrappers.lambdaQuery(); | |
243 | + lambdaQueryWrapper.eq(ConfigValue::getModuleType, "receipt"); | |
244 | + ConfigValue configValue = configValueService.getOne(lambdaQueryWrapper); | |
245 | + | |
205 | 246 | //以上都没有的情况下查询入库首选项中的入库流程 |
206 | 247 | LambdaQueryWrapper<ReceiptPreference> lambda = Wrappers.lambdaQuery(); |
207 | - lambda.last("Limit 1"); | |
248 | + lambda.eq(ReceiptPreference::getCode, configValue.getValue()); | |
208 | 249 | ReceiptPreference receiptPreference = receiptPreferenceService.getOne(lambda); |
209 | 250 | List<StatusFlowDetail> statusFlowDetails = statusFlowDetailService.queryStatusFlowDetail(receiptPreference.getReceivingFlow()); |
210 | 251 | String status = nextStatusFlow(statusFlowDetails, receiptDetail.getProcessStamp()); |
211 | - receiptDetail.setProcessStamp(status); | |
252 | + //在状态到达时候是判断是否要质检 | |
253 | + if ("200".equals(status) && inspection(receiptDetail)){ | |
254 | + receiptDetail.setProcessStamp("180"); | |
255 | + } else { | |
256 | + receiptDetail.setProcessStamp(status); | |
257 | + } | |
212 | 258 | return receiptDetail; |
213 | 259 | } |
214 | 260 | } |
... | ... | @@ -308,4 +354,20 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R |
308 | 354 | } |
309 | 355 | return AjaxResult.success("审核完成"); |
310 | 356 | } |
357 | + | |
358 | + /** | |
359 | + * 判断明细中是否质检 | |
360 | + */ | |
361 | + public boolean inspection(ReceiptDetail receiptDetail){ | |
362 | + //如果明细中需要质检,则判断是否已经生成质检单 | |
363 | + if ("0".equals(receiptDetail.getQcCheck())){ | |
364 | + LambdaQueryWrapper<CheckHeader> lambda = Wrappers.lambdaQuery(); | |
365 | + lambda.eq(CheckHeader::getReferCode, receiptDetail.getReceiptCode()); | |
366 | + CheckHeader checkHeader = checkHeaderService.getOne(lambda); | |
367 | + if (checkHeader == null){ | |
368 | + return true; | |
369 | + } | |
370 | + } | |
371 | + return false; | |
372 | + } | |
311 | 373 | } |
... | ... |
src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java
... | ... | @@ -137,7 +137,8 @@ public class ReceiptHeaderController extends BaseController { |
137 | 137 | @PostMapping("/edit") |
138 | 138 | @ResponseBody |
139 | 139 | public AjaxResult editSave(ReceiptHeader receiptHeader) { |
140 | - if (receiptHeader.getFirstStatus() >100 | receiptHeader.getLastStatus()>100){ | |
140 | + ReceiptHeader receiptHeader1 = receiptHeaderService.getById(receiptHeader.getId()); | |
141 | + if (receiptHeader1.getFirstStatus() >100 | receiptHeader1.getLastStatus()>100){ | |
141 | 142 | return AjaxResult.error("已进入订单池,不允许修改"); |
142 | 143 | } |
143 | 144 | receiptHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); |
... | ... | @@ -160,7 +161,7 @@ public class ReceiptHeaderController extends BaseController { |
160 | 161 | * 审核入库单 |
161 | 162 | */ |
162 | 163 | @ApiOperation(value="审核入库单", notes="审核入库单", httpMethod = "POST") |
163 | - @RequiresPermissions("receipt:receiptHeader:approval") | |
164 | + @RequiresPermissions("receipt:receiptHeader:review") | |
164 | 165 | @Log(title = "入库-入库单 ",operating = "审核入库单 ", action = BusinessType.UPDATE) |
165 | 166 | @PostMapping("/approval") |
166 | 167 | @ResponseBody |
... | ... | @@ -223,7 +224,7 @@ public class ReceiptHeaderController extends BaseController { |
223 | 224 | */ |
224 | 225 | @ApiOperation(value="保存入库预约", notes="保存入库预约", httpMethod = "POST") |
225 | 226 | @RequiresPermissions("receipt:receiptHeader:reservation") |
226 | - @Log(title = "入库-入库单 ",operating = "入库单到货", action = BusinessType.UPDATE) | |
227 | + @Log(title = "入库-入库单 ",operating = "入库单预约", action = BusinessType.UPDATE) | |
227 | 228 | @PostMapping("/arrival") |
228 | 229 | @ResponseBody |
229 | 230 | public AjaxResult reservation(ReceiptHeader receiptHeader) { |
... | ... | @@ -287,4 +288,34 @@ public class ReceiptHeaderController extends BaseController { |
287 | 288 | } |
288 | 289 | return AjaxResult.success(receiptHeaderService.getById(id)); |
289 | 290 | } |
291 | + | |
292 | + /** | |
293 | + * 到货通知 | |
294 | + */ | |
295 | + @ApiOperation(value="到货通知 ", notes="到货通知 ", httpMethod = "POST") | |
296 | + @RequiresPermissions("receipt:receiptDetail:add") | |
297 | + @Log(title = "入库-入库单 ",operating = "到货通知 ", action = BusinessType.OTHER) | |
298 | + @PostMapping("/arrivalNotice") | |
299 | + @ResponseBody | |
300 | + public AjaxResult arrivalNotice(String id) { | |
301 | + if (StringUtils.isEmpty(id)){ | |
302 | + return AjaxResult.success(""); | |
303 | + } | |
304 | + return AjaxResult.success(receiptHeaderService.arrivalNotice(id)); | |
305 | + } | |
306 | + | |
307 | + /** | |
308 | + * 加入订单池 | |
309 | + */ | |
310 | + @ApiOperation(value="加入订单池 ", notes="加入订单池 ", httpMethod = "POST") | |
311 | + @RequiresPermissions("receipt:receiptHeader:addPool") | |
312 | + @Log(title = "入库-入库单 ",operating = "加入订单池 ", action = BusinessType.OTHER) | |
313 | + @PostMapping("/addPool") | |
314 | + @ResponseBody | |
315 | + public AjaxResult addPool(String ids) { | |
316 | + if (StringUtils.isEmpty(ids)){ | |
317 | + return AjaxResult.error("id不能为空"); | |
318 | + } | |
319 | + return AjaxResult.success(receiptHeaderService.addPool(ids)); | |
320 | + } | |
290 | 321 | } |
... | ... |
src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java
... | ... | @@ -15,6 +15,7 @@ import com.huaheng.pc.check.checkHeader.domain.CheckHeader; |
15 | 15 | import com.huaheng.pc.check.checkHeader.service.CheckHeaderService; |
16 | 16 | import com.huaheng.pc.config.receiptType.domain.ReceiptType; |
17 | 17 | import com.huaheng.pc.config.receiptType.service.ReceiptTypeService; |
18 | +import com.huaheng.pc.config.sendMail.service.SendMailService; | |
18 | 19 | import com.huaheng.pc.config.statusFlow.domain.StatusFlowDetail; |
19 | 20 | import com.huaheng.pc.config.statusFlow.service.StatusFlowDetailService; |
20 | 21 | import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; |
... | ... | @@ -27,6 +28,7 @@ import org.springframework.stereotype.Service; |
27 | 28 | import javax.annotation.Resource; |
28 | 29 | import java.lang.ref.WeakReference; |
29 | 30 | import java.text.SimpleDateFormat; |
31 | +import java.util.Arrays; | |
30 | 32 | import java.util.Date; |
31 | 33 | import java.util.List; |
32 | 34 | |
... | ... | @@ -41,6 +43,8 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei |
41 | 43 | private CheckHeaderService checkHeaderService; |
42 | 44 | @Resource |
43 | 45 | private CheckDetailService checkDetailService; |
46 | + @Resource | |
47 | + private SendMailService sendMailService; | |
44 | 48 | |
45 | 49 | /** |
46 | 50 | * 保存入库单 |
... | ... | @@ -155,6 +159,13 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei |
155 | 159 | receiptDetailLambda.eq(ReceiptDetail::getReceiptId, id); |
156 | 160 | List<ReceiptDetail> receiptDetails = receiptDetailService.list(receiptDetailLambda); |
157 | 161 | |
162 | + //判断是否已经生成了质检单 | |
163 | + LambdaQueryWrapper<CheckHeader> checkHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); | |
164 | + checkHeaderLambdaQueryWrapper.eq(CheckHeader::getReferCode, receiptHeader.getCode()); | |
165 | + CheckHeader checkHeaderQuery = checkHeaderService.getOne(checkHeaderLambdaQueryWrapper); | |
166 | + if (checkHeaderQuery != null){ | |
167 | + throw new ServiceException("质检表已生成"); | |
168 | + } | |
158 | 169 | //创建质检头表 |
159 | 170 | CheckHeader checkHeader = new CheckHeader(); |
160 | 171 | checkHeader.setCode(receiptHeader.getCode()); |
... | ... | @@ -167,7 +178,7 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei |
167 | 178 | checkHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); |
168 | 179 | |
169 | 180 | if (!checkHeaderService.save(checkHeader)){ |
170 | - throw new ServiceException("添加质检头表发送错误"); | |
181 | + throw new ServiceException("添加质检头表错误"); | |
171 | 182 | } |
172 | 183 | |
173 | 184 | //查询保存后的质检头表 |
... | ... | @@ -223,4 +234,54 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei |
223 | 234 | } |
224 | 235 | return AjaxResult.success("提交审核成功"); |
225 | 236 | } |
237 | + | |
238 | + /** | |
239 | + * 到货通知 | |
240 | + * @param id | |
241 | + * @return | |
242 | + */ | |
243 | + public AjaxResult arrivalNotice(String id){ | |
244 | + LambdaQueryWrapper<ReceiptDetail> lambda = Wrappers.lambdaQuery(); | |
245 | + lambda.eq(ReceiptDetail::getReceiptId, id); | |
246 | + List<ReceiptDetail> receiptDetails = receiptDetailService.list(lambda); | |
247 | + for (ReceiptDetail receiptDetail : receiptDetails) { | |
248 | + receiptDetail.setProcessStamp(String.valueOf(150)); | |
249 | + receiptDetailService.updateById(receiptDetail); | |
250 | + if (!receiptDetailService.updateById(receiptDetailService.queryflow(receiptDetail))){ | |
251 | + throw new ServiceException("更新入库明细处理标记出错"); | |
252 | + } | |
253 | + receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId()); | |
254 | + } | |
255 | + return AjaxResult.success(""); | |
256 | + } | |
257 | + | |
258 | + /** | |
259 | + * 加入订单池 | |
260 | + * @param ids 头表id字符串 | |
261 | + * @return | |
262 | + */ | |
263 | + public AjaxResult addPool(String ids){ | |
264 | + List<Integer> idList = Arrays.asList(Convert.toIntArray(ids)); | |
265 | + for (Integer id : idList){ | |
266 | + LambdaQueryWrapper<ReceiptDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); | |
267 | + lambdaQueryWrapper.eq(ReceiptDetail::getReceiptId, id); | |
268 | + List<ReceiptDetail> list = receiptDetailService.list(lambdaQueryWrapper); | |
269 | + if (list.size() != 0){ | |
270 | + for (ReceiptDetail receiptDetail : list){ | |
271 | + if (Integer.parseInt(receiptDetail.getProcessStamp()) < 100){ | |
272 | + receiptDetail.setProcessStamp("100"); | |
273 | + ReceiptDetail receiptDetail1 = receiptDetailService.queryflow(receiptDetail); | |
274 | + if (!receiptDetailService.updateById(receiptDetail1)){ | |
275 | + throw new ServiceException("更新入库明细状态失败"); | |
276 | + } | |
277 | + } else { | |
278 | + throw new ServiceException("已有入库明细进入订单池"); | |
279 | + } | |
280 | + } | |
281 | + } | |
282 | + //更新头表状态 | |
283 | + receiptDetailService.updateReceiptHeaderLastStatus(id); | |
284 | + } | |
285 | + return AjaxResult.success(""); | |
286 | + } | |
226 | 287 | } |
... | ... |
src/main/java/com/huaheng/pc/receipt/receiptHeaderHistory/service/ReceiptHeaderHistoryService.java
... | ... | @@ -63,16 +63,19 @@ public class ReceiptHeaderHistoryService extends ServiceImpl<ReceiptHeaderHistor |
63 | 63 | if (!receiptHeaderService.removeById(receiptHeader.getId())){ |
64 | 64 | throw new ServiceException("删除头表失败"); |
65 | 65 | } |
66 | - //删除入库明细 | |
67 | - List<Integer> ids = new ArrayList<>(); | |
68 | - for (int i=0; i<receiptDetailHistoryList.size();i++){ | |
69 | - receiptDetailHistoryList.get(i).setLastUpdatedBy(ShiroUtils.getLoginName()); | |
70 | - ids.add(receiptDetailHistoryList.get(i).getId()); | |
71 | - } | |
72 | - if (!receiptDetailService.removeByIds(ids)) { | |
73 | - throw new ServiceException("删除明细表失败"); | |
66 | + // 当存在明细时删除 | |
67 | + if (list.size()!= 0){ | |
68 | + //删除入库明细 | |
69 | + List<Integer> ids = new ArrayList<>(); | |
70 | + for (int i=0; i<receiptDetailHistoryList.size();i++){ | |
71 | + receiptDetailHistoryList.get(i).setLastUpdatedBy(ShiroUtils.getLoginName()); | |
72 | + ids.add(receiptDetailHistoryList.get(i).getId()); | |
73 | + } | |
74 | + if (!receiptDetailService.removeByIds(ids)) { | |
75 | + throw new ServiceException("删除明细表失败"); | |
76 | + } | |
77 | + receiptDetailHistoryService.saveBatch(receiptDetailHistoryList); | |
74 | 78 | } |
75 | - receiptDetailHistoryService.saveBatch(receiptDetailHistoryList); | |
76 | 79 | this.save(receiptHeaderHistory); |
77 | 80 | }else { |
78 | 81 | return AjaxResult.success("入库单没有完成,无法删除"); |
... | ... |
src/main/java/com/huaheng/pc/receipt/receiving/controller/ReceivingController.java
1 | 1 | package com.huaheng.pc.receipt.receiving.controller; |
2 | 2 | |
3 | -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |
4 | -import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |
5 | -import com.huaheng.common.utils.security.ShiroUtils; | |
6 | 3 | import com.huaheng.framework.aspectj.lang.annotation.Log; |
7 | 4 | import com.huaheng.framework.aspectj.lang.constant.BusinessType; |
8 | 5 | import com.huaheng.framework.web.controller.BaseController; |
... | ... | @@ -10,8 +7,6 @@ import com.huaheng.framework.web.domain.AjaxResult; |
10 | 7 | import com.huaheng.pc.receipt.receiptContainerDetail.service.ReceiptContainerDetailService; |
11 | 8 | import com.huaheng.pc.receipt.receiptContainerHeader.service.ReceiptContainerHeaderService; |
12 | 9 | import com.huaheng.pc.receipt.receiving.service.ReceivingService; |
13 | -import com.huaheng.pc.task.taskHeader.domain.TaskHeader; | |
14 | -import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; | |
15 | 10 | import io.swagger.annotations.ApiOperation; |
16 | 11 | import io.swagger.annotations.ApiParam; |
17 | 12 | import org.apache.shiro.authz.annotation.RequiresPermissions; |
... | ... |
src/main/java/com/huaheng/pc/receipt/receiving/service/ReceivingService.java
... | ... | @@ -182,16 +182,17 @@ public class ReceivingService { |
182 | 182 | throw new ServiceException("组盘已生成任务不能取消定位"); |
183 | 183 | } |
184 | 184 | //将入库组盘头表中的而库位编码赋值null |
185 | - receiptContainerHeader.setToLocation(null); | |
185 | + receiptContainerHeader.setToLocation(""); | |
186 | 186 | if (!receiptContainerHeaderService.updateById(receiptContainerHeader)){ |
187 | 187 | throw new ServiceException("回滚入库组盘头失败"); |
188 | 188 | } |
189 | 189 | |
190 | + //将入库组盘明细的库位修改为空 | |
190 | 191 | LambdaQueryWrapper<ReceiptContainerDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); |
191 | 192 | lambdaQueryWrapper.eq(ReceiptContainerDetail::getReceiptContainerId, receiptContainerDetail.getReceiptContainerId()); |
192 | 193 | List<ReceiptContainerDetail> receiptContainerDetailList = receiptContainerDetailService.list(lambdaQueryWrapper); |
193 | 194 | for (ReceiptContainerDetail receiptContainerDetail2 : receiptContainerDetailList) { |
194 | - receiptContainerDetail2.setLocationCode(null); | |
195 | + receiptContainerDetail2.setLocationCode(""); | |
195 | 196 | if (!receiptContainerDetailService.updateById(receiptContainerDetail2)){ |
196 | 197 | throw new ServiceException("回滚入库组盘明细失败"); |
197 | 198 | } |
... | ... |
src/main/resources/mybatis/config/ContainerMapper.xml
... | ... | @@ -52,4 +52,7 @@ |
52 | 52 | UPDATE container set `status`=#{status}, locationCode=#{locationCode} WHERE warehouseCode=#{warehouseCode} AND `code`=#{containerCode} |
53 | 53 | </update> |
54 | 54 | |
55 | + <select id="findAllByCode" resultMap="BaseResultMap" parameterType="java.lang.String"> | |
56 | + SELECT * FROM container WHERE code = #{code,jdbcType=VARCHAR} | |
57 | + </select> | |
55 | 58 | </mapper> |
56 | 59 | \ No newline at end of file |
... | ... |
src/main/resources/templates/config/configValue/edit.html
... | ... | @@ -64,7 +64,7 @@ |
64 | 64 | </div> |
65 | 65 | <div th:include="include::footer"></div> |
66 | 66 | <script type="text/javascript"> |
67 | - var prefix = ctx + "config/configvalue"; | |
67 | + var prefix = ctx + "config/configValue"; | |
68 | 68 | $("#form-configValue-edit").validate({ |
69 | 69 | rules:{ |
70 | 70 | moduleType:{ |
... | ... |
src/main/resources/templates/config/filterConfigHeader/add.html
... | ... | @@ -5,18 +5,14 @@ |
5 | 5 | <body class="white-bg"> |
6 | 6 | <div class="wrapper wrapper-content animated fadeInRight ibox-content"> |
7 | 7 | <form class="form-horizontal m" id="form-filterConfigHeader-add"> |
8 | - <div class="form-group"> | |
9 | - <label class="col-sm-3 control-label">模块:</label> | |
10 | - <div class="col-sm-8"> | |
11 | - <select class="form-control" name="moduleType" th:with="moduleType=${@dict.getType('moduleType')}"> | |
12 | - <option th:each="item : ${moduleType}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option> | |
13 | - </select> | |
14 | - </div> | |
15 | - </div> | |
8 | + <input name="moduleType" th:value="${moduleType}" hidden> | |
16 | 9 | <div class="form-group"> |
17 | 10 | <label class="col-sm-3 control-label">类型:</label> |
18 | 11 | <div class="col-sm-8"> |
19 | - <select id="recordType" name="recordType" class="form-control" th:with="recordType=${@dict.getType('recordType')}"> | |
12 | + <select id="recordType" name="recordType" class="form-control" th:if="${moduleType == 'receipt'}" th:with="recordType=${@dict.getType('receiptRuleType')}"> | |
13 | + <option th:each="item : ${recordType}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option> | |
14 | + </select> | |
15 | + <select id="recordType" name="recordType" class="form-control" th:if="${moduleType != 'receipt'}" th:with="recordType=${@dict.getType('shipmentRuleType')}"> | |
20 | 16 | <option th:each="item : ${recordType}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option> |
21 | 17 | </select> |
22 | 18 | </div> |
... | ... |
src/main/resources/templates/config/filterConfigHeader/filterConfigHeader.html
src/main/resources/templates/config/receiptPreference/add.html
... | ... | @@ -20,7 +20,7 @@ |
20 | 20 | <div class="form-group"> |
21 | 21 | <label class="col-sm-3 control-label">入库流程:</label> |
22 | 22 | <div class="col-sm-8"> |
23 | - <select id="receiptFlow" name="receiptFlow" class="form-control" th:with="statusFlowList=${@StatusFlow.flowList('入库单')}"> | |
23 | + <select id="receiptFlow" name="receiptFlow" class="form-control" th:with="statusFlowList=${@StatusFlow.flowList('receivingFlow')}"> | |
24 | 24 | <option th:each="flow : ${statusFlowList}" th:text="${flow['name']}" th:value="${flow['code']}"></option> |
25 | 25 | </select> |
26 | 26 | </div> |
... | ... |
src/main/resources/templates/config/receiptPreference/receiptPreference.html
src/main/resources/templates/config/receiptType/add.html
... | ... | @@ -46,7 +46,8 @@ |
46 | 46 | <div class="form-group"> |
47 | 47 | <label class="col-sm-3 control-label">入库流程:</label> |
48 | 48 | <div class="col-sm-8"> |
49 | - <select id="receiptFlow" name="receiptFlow" class="form-control" th:with="statusFlowList=${@StatusFlow.flowList('入库单')}"> | |
49 | + <select id="receiptFlow" name="receiptFlow" class="form-control" th:with="statusFlowList=${@StatusFlow.flowList('receivingFlow')}"> | |
50 | + <option value="">请选择</option> | |
50 | 51 | <option th:each="flow : ${statusFlowList}" th:text="${flow['name']}" th:value="${flow['code']}"></option> |
51 | 52 | </select> |
52 | 53 | </div> |
... | ... |
src/main/resources/templates/config/receiptType/edit.html
... | ... | @@ -48,7 +48,8 @@ |
48 | 48 | <div class="form-group"> |
49 | 49 | <label class="col-sm-3 control-label">入库流程:</label> |
50 | 50 | <div class="col-sm-8"> |
51 | - <select id="receiptFlow" name="receiptFlow" class="form-control" th:with="statusFlowList=${@StatusFlow.flowList('入库单')}" th:field="*{receiptFlow}"> | |
51 | + <select id="receiptFlow" name="receiptFlow" class="form-control" th:with="statusFlowList=${@StatusFlow.flowList('receivingFlow')}" th:field="*{receiptFlow}"> | |
52 | + <option value="">请选择</option> | |
52 | 53 | <option th:each="flow : ${statusFlowList}" th:text="${flow['name']}" th:value="${flow['code']}"></option> |
53 | 54 | </select> |
54 | 55 | </div> |
... | ... |
src/main/resources/templates/config/statusFlowDetail/add.html
... | ... | @@ -16,9 +16,7 @@ |
16 | 16 | <div class="form-group"> |
17 | 17 | <label class="col-sm-3 control-label">模块:</label> |
18 | 18 | <div class="col-sm-8"> |
19 | - <select id="moduleType" name="moduleType" class="form-control" th:with="moduleType=${@dict.getType('moduleType')}"> | |
20 | - <option th:each="item : ${moduleType}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option> | |
21 | - </select> | |
19 | + <input id="moduleType" name="moduleType" class="form-control" type="text" th:value="${moduleType}" readonly="readonly"> | |
22 | 20 | </div> |
23 | 21 | </div> |
24 | 22 | <div class="form-group"> |
... | ... |
src/main/resources/templates/config/statusFlowHeader/add.html
... | ... | @@ -5,6 +5,7 @@ |
5 | 5 | <body class="white-bg"> |
6 | 6 | <div class="wrapper wrapper-content animated fadeInRight ibox-content"> |
7 | 7 | <form class="form-horizontal m" id="form-statusFlowHeader-add"> |
8 | + <input id="moduleType" name="moduleType" hidden th:value="${moduleType}"> | |
8 | 9 | <div class="form-group"> |
9 | 10 | <label class="col-sm-3 control-label">编码:</label> |
10 | 11 | <div class="col-sm-8"> |
... | ... | @@ -17,22 +18,7 @@ |
17 | 18 | <input id="name" name="name" class="form-control" type="text"> |
18 | 19 | </div> |
19 | 20 | </div> |
20 | - <div class="form-group"> | |
21 | - <label class="col-sm-3 control-label">模块:</label> | |
22 | - <div class="col-sm-8"> | |
23 | - <select id="moduleType" name="moduleType" class="form-control" th:with="moduleType=${@dict.getType('moduleType')}"> | |
24 | - <option th:each="item : ${moduleType}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option> | |
25 | - </select> | |
26 | - </div> | |
27 | - </div> | |
28 | - <div class="form-group"> | |
29 | - <label class="col-sm-3 control-label">类型:</label> | |
30 | - <div class="col-sm-8"> | |
31 | - <select id="recordType" name="recordType" class="form-control" th:with="recordType=${@dict.getType('recordType')}"> | |
32 | - <option th:each="item : ${recordType}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option> | |
33 | - </select> | |
34 | - </div> | |
35 | - </div> | |
21 | + <input id="recordType" name="recordType" class="form-control" type="hidden" th:value="${moduleType} == 'receipt'? 'receivingFlow':'shippingFlow'"> | |
36 | 22 | <!--<div class="form-group">--> |
37 | 23 | <!-- <label class="col-sm-3 control-label">数据版本:</label>--> |
38 | 24 | <!-- <div class="col-sm-8">--> |
... | ... |
src/main/resources/templates/config/statusFlowHeader/statusFlowHeader.html
src/main/resources/templates/inventory/adjustDetail/adjustDetail.html
... | ... | @@ -91,14 +91,16 @@ |
91 | 91 | </div> |
92 | 92 | </div> |
93 | 93 | <div class="btn-group hidden-xs" id="toolbar" role="group"> |
94 | - <a class="btn btn-outline btn-success btn-rounded" onclick="add()"> | |
94 | + <a class="btn btn-outline btn-success btn-rounded" onclick="add()" | |
95 | + shiro:hasPermission="inventory:adjustDetail:add" > | |
95 | 96 | <i class="fa fa-plus"></i> 新增 |
96 | 97 | </a> |
97 | - <a class="btn btn-outline btn-primary btn-rounded" onclick="agree()"> | |
98 | + <a class="btn btn-outline btn-primary btn-rounded" onclick="agree()" | |
99 | + shiro:hasPermission="inventory:adjustDetail:adjustAgree" > | |
98 | 100 | <i class="fa fa-edit"></i> 审批 |
99 | 101 | </a> |
100 | - <a class="btn btn-outline btn-danger btn-rounded" onclick="addAdjust()"/> | |
101 | - <!--shiro:hasPermission="inventory:cyclecountAdjustDetail:addAdjust"--> | |
102 | + <a class="btn btn-outline btn-danger btn-rounded" onclick="addAdjust()" | |
103 | + shiro:hasPermission="inventory:adjustDetail:addAdjust"> | |
102 | 104 | <i class="fa fa-vcard"></i>调整 |
103 | 105 | </a> |
104 | 106 | <!--<a class="btn btn-outline btn-success btn-rounded" onclick="$.table.refresh()"> |
... | ... | @@ -112,6 +114,7 @@ |
112 | 114 | <script th:inline="javascript"> |
113 | 115 | var prefix = ctx + "inventory/adjustDetail"; |
114 | 116 | var prefix_head = ctx + "inventory/adjustHeader"; |
117 | + var removes= [[${@permission.hasPermi('inventory:adjustDetail:remove')}]]; | |
115 | 118 | var type2 = [[${@dict.getType('adjustType')}]]; |
116 | 119 | var adjustStatus = [[${@dict.getType('adjustStatus')}]]; |
117 | 120 | var inventoryStatus = [[${@dict.getType('inventoryStatus')}]]; |
... | ... | @@ -353,7 +356,7 @@ |
353 | 356 | align: 'center', |
354 | 357 | formatter: function (value, row, index) { |
355 | 358 | var actions = []; |
356 | - actions.push('<a class="btn btn-danger btn-xs" href="#" onclick="remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a> '); | |
359 | + actions.push('<a class="btn btn-danger btn-xs ' + removes + ' " href="#" onclick="remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a> '); | |
357 | 360 | return actions.join(''); |
358 | 361 | } |
359 | 362 | } |
... | ... |
src/main/resources/templates/inventory/adjustHeader/adjustHeader.html
... | ... | @@ -69,13 +69,13 @@ |
69 | 69 | </div> |
70 | 70 | <div class="btn-group hidden-xs" id="toolbar" role="group"> |
71 | 71 | <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" |
72 | - shiro:hasPermission="inventory:cycleCount:add"> | |
72 | + shiro:hasPermission="inventory:adjustHeader:add"> | |
73 | 73 | <i class="fa fa-plus"></i> 新增 |
74 | 74 | </a> |
75 | - <!--<a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" | |
76 | - shiro:hasPermission="inventory:cycleCount:remove"> | |
77 | - <i class="fa fa-trash-o"></i> 删除 | |
78 | - </a>--> | |
75 | + <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" | |
76 | + shiro:hasPermission="inventory:adjustHeader:remove"> | |
77 | + <i class="fa fa-trash-o"></i> 删除 | |
78 | + </a> | |
79 | 79 | </div> |
80 | 80 | <table id="bootstrap-table" data-mobile-responsive="true" |
81 | 81 | class="table table-bordered table-hover"></table> |
... | ... | @@ -90,7 +90,7 @@ |
90 | 90 | <script th:inline="javascript"> |
91 | 91 | var prefix = ctx + "inventory/adjustHeader"; |
92 | 92 | var upload = [[${@permission.hasPermi('inventoryHeader:adjustHeader:upload')}]]; |
93 | - var report = [[${@permission.hasPermi('inventoryHeader:adjustHeader:report')}]]; | |
93 | + var report = [[${@permission.hasPermi('inventory:adjustHeader:report')}]]; | |
94 | 94 | var datas = [[${@dict.getType('sys_normal_disable')}]]; |
95 | 95 | var type2 = [[${@dict.getType('adjustType')}]]; |
96 | 96 | |
... | ... | @@ -180,8 +180,8 @@ |
180 | 180 | align: 'center', |
181 | 181 | formatter: function (value, row, index) { |
182 | 182 | var actions = []; |
183 | - /* actions.push('<a class="btn btn-success btn-xs " href="#" onclick="adjustPrint(\'' + row.id + '\')"><i class="fa fa-print"></i>打印</a> '); | |
184 | - actions.push('<a class="btn btn-info btn-xs ' + upload + ' " href="#" onclick="upLoad(\'' + row.code + '\',\'' + row.sourceCode + '\')"><i class="fa fa-edit"></i>上传</a> '); | |
183 | + actions.push('<a class="btn btn-success btn-xs " href="#" onclick="adjustPrint(\'' + row.id + '\')"><i class="fa fa-print"></i>打印</a> '); | |
184 | + /* actions.push('<a class="btn btn-info btn-xs ' + upload + ' " href="#" onclick="upLoad(\'' + row.code + '\',\'' + row.sourceCode + '\')"><i class="fa fa-edit"></i>上传</a> '); | |
185 | 185 | actions.push('<a class="btn btn-danger btn-xs " href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a> ');*/ |
186 | 186 | actions.push('<a style="background: #b5bdc0" class="btn btn-default btn-xs " href="#" onclick="detail(\'' + row.id + '\',\'' + row.code + '\')"><i class="fa fa-list-ul"></i>明细</a>'); |
187 | 187 | return actions.join(''); |
... | ... |
src/main/resources/templates/inventory/cycleCountDetail/add.html
... | ... | @@ -11,7 +11,6 @@ |
11 | 11 | <input type="hidden" id="cycleCountHeadCode" name="cycleCountHeadCode" th:value="${cycleCountHeadCode}"> |
12 | 12 | <div class="select-list"> |
13 | 13 | <ul> |
14 | - <ul> | |
15 | 14 | <li> |
16 | 15 | 库存头ID:<input id="inventoryHeaderId" type="text" name="inventoryHeaderId"/> |
17 | 16 | </li> |
... | ... | @@ -79,12 +78,14 @@ |
79 | 78 | <a id="search" class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i> 搜索</a> |
80 | 79 | <!--<a class="btn btn-success btn-rounded btn-sm" onclick="$.table.exportExcel()" shiro:hasPermission="general:inventoryHeader:export"><i class="fa fa-download"></i> 导出</a>--> |
81 | 80 | </li> |
82 | - </ul> | |
81 | + </ul> | |
83 | 82 | </div> |
84 | 83 | </form> |
85 | 84 | </div> |
86 | 85 | <div class="col-sm-12 select-info"> |
87 | - <a class="btn btn-success btn-sm" onclick="addDetails()" style="float: left; margin-top: 12px" shiro:hasPermission="inventory:cyclecountDetail:add"><i class="fa fa-edit" ></i> 批量添加盘点明细</a> | |
86 | + <a class="btn btn-success btn-sm" onclick="addDetails()" style="float: left; margin-top: 12px" | |
87 | + shiro:hasPermission="inventory:cyclecountDetail:add"> | |
88 | + <i class="fa fa-edit" ></i> 添加盘点明细</a> | |
88 | 89 | <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table> |
89 | 90 | </div> |
90 | 91 | </div> |
... | ... | @@ -94,7 +95,7 @@ |
94 | 95 | <div th:include="include::footer"></div> |
95 | 96 | |
96 | 97 | <script th:inline="javascript"> |
97 | - var addFlag = [[${@permission.hasPermi('inventoryHeader:cycleCountDetail:add')}]]; | |
98 | + var addFlag = [[${@permission.hasPermi('inventory:cyclecountDetail:add')}]]; | |
98 | 99 | // var removeFlag = [[${@permission.hasPermi('inventoryHeader:inventoryHeader:remove')}]]; |
99 | 100 | var prefix = ctx + "inventory/inventoryDetail"; |
100 | 101 | var prefix_cycleDetails = ctx + "inventory/cycleCountDetail"; |
... | ... | @@ -132,7 +133,7 @@ |
132 | 133 | { |
133 | 134 | checkbox: true |
134 | 135 | }, |
135 | - { | |
136 | + /*{ | |
136 | 137 | title: '操作', |
137 | 138 | align: 'center', |
138 | 139 | formatter: function(value, row, index) { |
... | ... | @@ -141,10 +142,10 @@ |
141 | 142 | // actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>'); |
142 | 143 | return actions.join(''); |
143 | 144 | } |
144 | - }, | |
145 | + },*/ | |
145 | 146 | { |
146 | 147 | field: 'id', |
147 | - title: '明细ID', | |
148 | + title: '库存明细ID', | |
148 | 149 | sortable: true |
149 | 150 | }, |
150 | 151 | { |
... | ... | @@ -315,14 +316,18 @@ |
315 | 316 | |
316 | 317 | }); |
317 | 318 | |
318 | - /*function addDetail(cycleCountHeadId) { | |
319 | - addInner($('cycleCountHeadId').val(),cycleCountHeadId); | |
320 | - }*/ | |
319 | + function addDetail(id) { | |
320 | + /*var ids =[]; | |
321 | + rows.forEach(function (item) { | |
322 | + ids.push(item.id); | |
323 | + });*/ | |
324 | + addInner($('#cycleCountHeadCode').val(),id); | |
325 | + } | |
321 | 326 | |
322 | 327 | function addDetails() { |
323 | 328 | var rows=$("#bootstrap-table").bootstrapTable('getSelections'); |
324 | 329 | if (rows.length < 1) { |
325 | - $.modal.alertWarning("请先选择记录"); | |
330 | + $.modal.alertWarning("请选择库存明细!"); | |
326 | 331 | return; |
327 | 332 | } |
328 | 333 | var ids =[]; |
... | ... | @@ -339,7 +344,7 @@ |
339 | 344 | url : prefix_cycleDetails + "/add", |
340 | 345 | data:{ |
341 | 346 | cycleCountHeadCode:cycleCountHeadCode, |
342 | - inventoryDetailIdIds:ids | |
347 | + inventoryDetailIds:ids | |
343 | 348 | }, |
344 | 349 | async : false, |
345 | 350 | error : function(request) { |
... | ... |
src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html
... | ... | @@ -85,7 +85,7 @@ |
85 | 85 | </div> |
86 | 86 | <div class="btn-group hidden-xs" id="toolbar" role="group"> |
87 | 87 | <a class="btn btn-outline btn-success btn-rounded" onclick="add()" |
88 | - shiro:hasPermission="inventory:cycleCountDetail:add"> | |
88 | + shiro:hasPermission="inventory:cyclecountDetail:add"> | |
89 | 89 | <i class="fa fa-plus"></i> 新增 |
90 | 90 | </a> |
91 | 91 | <a class="btn btn-outline btn-danger btn-rounded" onclick="createCyclecountWithGapQty()" |
... | ... | @@ -98,7 +98,7 @@ |
98 | 98 | </a> |
99 | 99 | <a class="btn btn-outline btn-danger btn-rounded" onclick="batRemove()" |
100 | 100 | shiro:hasPermission="inventory:cyclecountDetail:remove"> |
101 | - <i class="fa fa-trash-o"></i> 批量删除 | |
101 | + <i class="fa fa-trash-o"></i> 删除 | |
102 | 102 | </a> |
103 | 103 | <a class="btn btn-outline btn-success btn-rounded" onclick="$.table.refresh()"> |
104 | 104 | <i class="fa fa-refresh"></i> 刷新 |
... | ... | @@ -109,10 +109,10 @@ |
109 | 109 | </div> |
110 | 110 | <div th:include="include :: footer"></div> |
111 | 111 | <script th:inline="javascript"> |
112 | - var editFlag = [[${@permission.hasPermi('inventoryHeader:cycleCountDetail:edit')}]]; | |
113 | - var removeFlag = [[${@permission.hasPermi('inventoryHeader:cycleCountDetail:remove')}]]; | |
114 | - var confirmFlag=[[${@permission.hasPermi('inventoryHeader:cycleCountDetail:confirm')}]]; | |
115 | - var createTaskFalg=[[${@permission.hasPermi('inventoryHeader:cycleCountDetail:createTask')}]]; | |
112 | + //var editFlag = [[${@permission.hasPermi('inventory:cyclecountDetail:edit')}]]; | |
113 | + var removeFlag = [[${@permission.hasPermi('inventory:cyclecountDetail:remove')}]]; | |
114 | + var confirmFlag = [[${@permission.hasPermi('inventory:cyclecountDetail:confirm')}]]; | |
115 | + var createTaskFalg = [[${@permission.hasPermi('inventory:cyclecountDetail:createTask')}]]; | |
116 | 116 | var prefix = ctx + "inventory/cycleCountDetail"; |
117 | 117 | var prefix_head = ctx + "inventory/cycleCountHeader"; |
118 | 118 | var remove_url= prefix + "/remove"; |
... | ... | @@ -318,12 +318,13 @@ |
318 | 318 | align: 'center', |
319 | 319 | formatter: function (value, row, index) { |
320 | 320 | var actions = []; |
321 | - | |
322 | - actions.push('<a class="btn btn-success btn-xs " href="#" onclick="confirmGapQty(\'' + row.id + '\')"><i class="fa fa-comment"></i>实盘登记</a> '); | |
323 | - | |
324 | - actions.push('<a class="btn btn-primary btn-xs " href="#" onclick="outcheck(\'' + row.id + '\')"><i class="fa fa-gbp"></i>生成盘点任务</a> '); | |
325 | - | |
326 | - actions.push('<a class="btn btn-danger btn-xs " href="#" onclick="remove(\'' + row.id + '\')" ><i class="fa fa-trash-o"></i>删除</a>'); | |
321 | + if(row.enableStatus >= 10 && row.enableStatus < 100){ | |
322 | + actions.push('<a class="btn btn-success btn-xs ' + confirmFlag + '" href="#" onclick="confirmGapQty(\'' + row.id + '\')"><i class="fa fa-comment"></i>实盘登记</a> '); | |
323 | + } | |
324 | + if(row.enableStatus === 1 ){ | |
325 | + actions.push('<a class="btn btn-primary btn-xs ' + createTaskFalg + '" href="#" onclick="outcheck(\'' + row.id + '\')"><i class="fa fa-gbp"></i>生成盘点任务</a> '); | |
326 | + } | |
327 | + actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="remove(\'' + row.id + '\')" ><i class="fa fa-trash-o"></i>删除</a>'); | |
327 | 328 | return actions.join(''); |
328 | 329 | } |
329 | 330 | }] |
... | ... |
src/main/resources/templates/inventory/cycleCountHeader/cycleCountHeader.html
... | ... | @@ -70,13 +70,13 @@ |
70 | 70 | </div> |
71 | 71 | <div class="btn-group hidden-xs" id="toolbar" role="group"> |
72 | 72 | <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" |
73 | - shiro:hasPermission="inventory:cycleCount:add"> | |
73 | + shiro:hasPermission="inventory:cycleCountHeader:add"> | |
74 | 74 | <i class="fa fa-plus"></i> 新增 |
75 | 75 | </a> |
76 | - <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" | |
77 | - shiro:hasPermission="inventory:cycleCount:remove"> | |
76 | + <!--<a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" | |
77 | + shiro:hasPermission="inventory:cycleCountHeader:remove"> | |
78 | 78 | <i class="fa fa-trash-o"></i> 删除 |
79 | - </a> | |
79 | + </a>--> | |
80 | 80 | </div> |
81 | 81 | <table id="bootstrap-table" data-mobile-responsive="true" |
82 | 82 | class="table table-bordered table-hover"></table> |
... | ... | @@ -89,10 +89,10 @@ |
89 | 89 | </div> |
90 | 90 | <div th:include="include :: footer"></div> |
91 | 91 | <script th:inline="javascript"> |
92 | - var reportFlag = [[${@permission.hasPermi('inventoryHeader:cycleCount:report')}]]; | |
93 | - var editFlag = [[${@permission.hasPermi('inventoryHeader:cycleCount:edit')}]]; | |
94 | - var addAdjust = [[${@permission.hasPermi('inventoryHeader:cyclecountHead:addAdjust')}]]; | |
95 | - var removeFlag = [[${@permission.hasPermi('inventoryHeader:cycleCount:remove')}]]; | |
92 | + var reportFlag = [[${@permission.hasPermi('inventory:cycleCountHeader:report')}]]; | |
93 | + //var editFlag = [[${@permission.hasPermi('inventory:cycleCountHeader:edit')}]]; | |
94 | + var addAdjust = [[${@permission.hasPermi('inventory:cyclecountHead:addAdjust')}]]; | |
95 | + var removeFlag = [[${@permission.hasPermi('inventory:cycleCount:remove')}]]; | |
96 | 96 | var prefix = ctx + "inventory/cycleCountHeader"; |
97 | 97 | var datas = [[${@dict.getType('sys_normal_disable')}]]; |
98 | 98 | var types = [[${@dict.getType('cyclecountType')}]]; |
... | ... | @@ -137,6 +137,11 @@ |
137 | 137 | title: '货主编码' |
138 | 138 | }, |
139 | 139 | { |
140 | + field: 'round', | |
141 | + title: ' 盘点轮次', | |
142 | + visible: false | |
143 | + }, | |
144 | + { | |
140 | 145 | field: 'sourceCode', |
141 | 146 | title: '源盘点单' |
142 | 147 | }, |
... | ... | @@ -274,12 +279,12 @@ |
274 | 279 | align: 'center', |
275 | 280 | formatter: function (value, row, index) { |
276 | 281 | var actions = []; |
277 | - actions.push('<a class="btn btn-success btn-xs " href="#" onclick="cyclecountPrint(\'' + row.id + '\')"><i class="fa fa-print"></i>打印</a> '); | |
278 | - | |
279 | - actions.push('<a class="btn btn-warning btn-xs " href="#" onclick="goAdjust(\'' + row.id + '\')"><i class="fa fa-gbp"></i>生成调整单</a> '); | |
280 | - | |
281 | - //actions.push('<a class="btn btn-info btn-xs " href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> '); | |
282 | - actions.push('<a class="btn btn-danger btn-xs " href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a> '); | |
282 | + actions.push('<a class="btn btn-success btn-xs ' + reportFlag + '" href="#" onclick="cyclecountPrint(\'' + row.id + '\')"><i class="fa fa-print"></i>打印</a> '); | |
283 | + if(row.statusCyc === 100){ | |
284 | + actions.push('<a class="btn btn-warning btn-xs ' + addAdjust + '" href="#" onclick="goAdjust(\'' + row.id + '\')"><i class="fa fa-gbp"></i>生成调整单</a> '); | |
285 | + } | |
286 | + //actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> '); | |
287 | + actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a> '); | |
283 | 288 | return actions.join(''); |
284 | 289 | } |
285 | 290 | }] |
... | ... |
src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html
... | ... | @@ -86,7 +86,7 @@ |
86 | 86 | shiro:hasPermission="inventory:inventoryHeader:seeOut"> |
87 | 87 | <i class="fa fa-eye"></i> 出库查看 |
88 | 88 | </a> |
89 | - <a class="btn btn-outline btn-primary btn-rounded" onclick="check()" | |
89 | + <a class="btn btn-outline btn-danger btn-rounded" onclick="check()" | |
90 | 90 | shiro:hasPermission="inventory:inventoryDetail:detailCheckTask"> |
91 | 91 | <i class="fa fa-eye"></i> 在库质检 |
92 | 92 | </a> |
... | ... | @@ -305,7 +305,9 @@ |
305 | 305 | visible: false |
306 | 306 | } |
307 | 307 | ] |
308 | - },url = location.search.substr(1); | |
308 | + }, | |
309 | + | |
310 | + url = location.search.substr(1); | |
309 | 311 | let strs = url.split("&"); |
310 | 312 | $("#inventoryHeaderId").val(strs[0]); |
311 | 313 | $("#locationCode").val(strs[1]); |
... | ... |
src/main/resources/templates/receipt/receiptDetail/add.html
... | ... | @@ -52,7 +52,10 @@ |
52 | 52 | <div class="form-group"> |
53 | 53 | <label class="col-sm-3 control-label">是否质检:</label> |
54 | 54 | <div class="col-sm-8"> |
55 | - <input id="qcCheck" name="qcCheck" class="form-control" type="text"> | |
55 | + <select id="qcCheck" name="qcCheck" class="form-control"> | |
56 | + <option value="1">否</option> | |
57 | + <option value="0">是</option> | |
58 | + </select> | |
56 | 59 | </div> |
57 | 60 | </div> |
58 | 61 | <div class="form-group"> |
... | ... | @@ -70,7 +73,7 @@ |
70 | 73 | <div class="form-group"> |
71 | 74 | <label class="col-sm-3 control-label">库存状态:</label> |
72 | 75 | <div class="col-sm-8"> |
73 | - <select id="inventorySts" name="inventorySts" class="form-control" th:with="inventoryStatus=${@dict.getType('inventoryStatus')}"> | |
76 | + <select id="inventorySts" name="inventorySts" class="form-control" th:with="inventoryStatus=${@dict.getType('inventorySts')}"> | |
74 | 77 | <option th:each="dict : ${inventoryStatus}" th:text="${dict['dictLabel']}" th:value="${dict['dictValue']}"></option> |
75 | 78 | </select> |
76 | 79 | </div> |
... | ... | @@ -84,12 +87,21 @@ |
84 | 87 | <div class="form-group"> |
85 | 88 | <label class="col-sm-3 control-label">定位规则:</label> |
86 | 89 | <div class="col-sm-8"> |
87 | - <select id="locatingRule" name="locatingRule" class="form-control" th:with="list=${@FilterConfigDetailService.queryFilterConfigDetail('入库')}"> | |
90 | + <select id="locatingRule" name="locatingRule" class="form-control" th:with="list=${@FilterConfigDetailService.queryFilterConfigDetail('locationRule')}"> | |
88 | 91 | <option value="">请选择</option> |
89 | 92 | <option th:each="item : ${list}" th:text="${item['description']}" th:value="${item['code']}"></option> |
90 | 93 | </select> |
91 | 94 | </div> |
92 | 95 | </div> |
96 | + <div class="form-group"> | |
97 | + <label class="col-sm-3 control-label">入库流程:</label> | |
98 | + <div class="col-sm-8"> | |
99 | + <select id="statusFlowCode" name="statusFlowCode" class="form-control" th:with="statusFlowList=${@StatusFlow.flowList('receivingFlow')}"> | |
100 | + <option value="">请选择</option> | |
101 | + <option th:each="flow : ${statusFlowList}" th:text="${flow['name']}" th:value="${flow['code']}"></option> | |
102 | + </select> | |
103 | + </div> | |
104 | + </div> | |
93 | 105 | <!-- <div class="form-group">--> |
94 | 106 | <!-- <label class="col-sm-3 control-label">标价:</label>--> |
95 | 107 | <!-- <div class="col-sm-8">--> |
... | ... | @@ -150,6 +162,7 @@ |
150 | 162 | submitHandler: function(form) { |
151 | 163 | var tableValue = $("#form-receiptDetail-add").serialize(); |
152 | 164 | tableValue = formValueReplace(tableValue, "inventorySts", $("#inventorySts option:selected").val()); |
165 | + tableValue = formValueReplace(tableValue, "qcCheck", $("#qcCheck option:selected").val()); | |
153 | 166 | $.operate.save(prefix + "/add", tableValue); |
154 | 167 | } |
155 | 168 | }); |
... | ... |
src/main/resources/templates/receipt/receiptDetail/edit.html
... | ... | @@ -53,7 +53,10 @@ |
53 | 53 | <div class="form-group"> |
54 | 54 | <label class="col-sm-3 control-label">是否质检:</label> |
55 | 55 | <div class="col-sm-8"> |
56 | - <input id="qcCheck" name="qcCheck" class="form-control" type="text" th:field="*{qcCheck}"> | |
56 | + <select id="qcCheck" name="qcCheck" class="form-control" th:field="*{qcCheck}"> | |
57 | + <option value="1">否</option> | |
58 | + <option value="0">是</option> | |
59 | + </select> | |
57 | 60 | </div> |
58 | 61 | </div> |
59 | 62 | <div class="form-group"> |
... | ... | @@ -72,7 +75,7 @@ |
72 | 75 | <label class="col-sm-3 control-label">库存状态:</label> |
73 | 76 | <div class="col-sm-8"> |
74 | 77 | <select id="inventorySts" name="inventorySts" class="form-control" |
75 | - th:with="inventoryStatus=${@dict.getType('inventoryStatus')}" th:field="*{inventorySts}"> | |
78 | + th:with="inventoryStatus=${@dict.getType('inventorySts')}" th:field="*{inventorySts}"> | |
76 | 79 | <option th:each="dict : ${inventoryStatus}" th:text="${dict['dictLabel']}" th:value="${dict['dictValue']}"></option> |
77 | 80 | </select> |
78 | 81 | </div> |
... | ... | @@ -86,7 +89,11 @@ |
86 | 89 | <div class="form-group"> |
87 | 90 | <label class="col-sm-3 control-label">定位规则:</label> |
88 | 91 | <div class="col-sm-8"> |
89 | - <input id="locatingRule" name="locatingRule" class="form-control" type="text" th:field="*{locatingRule}"> | |
92 | + <select id="locatingRule" name="locatingRule" class="form-control" | |
93 | + th:with="list=${@FilterConfigDetailService.queryFilterConfigDetail('locationRule')}" th:field="*{locatingRule}"> | |
94 | + <option value="">请选择</option> | |
95 | + <option th:each="item : ${list}" th:text="${item['description']}" th:value="${item['code']}"></option> | |
96 | + </select> | |
90 | 97 | </div> |
91 | 98 | </div> |
92 | 99 | <div class="form-group"> |
... | ... | @@ -101,6 +108,16 @@ |
101 | 108 | <input id="itemNetPrice" name="itemNetPrice" class="form-control" type="text" th:field="*{itemNetPrice}"> |
102 | 109 | </div> |
103 | 110 | </div> |
111 | + <div class="form-group"> | |
112 | + <label class="col-sm-3 control-label">入库流程:</label> | |
113 | + <div class="col-sm-8"> | |
114 | + <select id="statusFlowCode" name="statusFlowCode" class="form-control" | |
115 | + th:with="statusFlowList=${@StatusFlow.flowList('receivingFlow')}" th:field="*{statusFlowCode}"> | |
116 | + <option value="">请选择</option> | |
117 | + <option th:each="flow : ${statusFlowList}" th:text="${flow['name']}" th:value="${flow['code']}"></option> | |
118 | + </select> | |
119 | + </div> | |
120 | + </div> | |
104 | 121 | <!--<div class="form-group">--> |
105 | 122 | <!--<label class="col-sm-3 control-label">自定义字段1:</label>--> |
106 | 123 | <!--<div class="col-sm-8">--> |
... | ... |
src/main/resources/templates/receipt/receiptHeader/edit.html
src/main/resources/templates/receipt/receiptHeader/receiptHeader.html
... | ... | @@ -82,12 +82,15 @@ |
82 | 82 | <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" shiro:hasPermission="receipt:receiptHeader:add"> |
83 | 83 | <i class="fa fa-plus"></i> 新增 |
84 | 84 | </a> |
85 | - <a class="btn btn-outline btn-default btn-rounded" onclick="submitReview()" shiro:hasPermission="receipt:receiptHeader:add"> | |
85 | + <a class="btn btn-outline btn-default btn-rounded" onclick="submitReview()" shiro:hasPermission="receipt:receiptHeader:approval"> | |
86 | 86 | <i class="fa fa-fighter-jet"></i> 提交审核 |
87 | 87 | </a> |
88 | - <a class="btn btn-outline btn-primary btn-rounded" onclick="approval()" shiro:hasPermission="receipt:receiptHeader:add"> | |
88 | + <a class="btn btn-outline btn-primary btn-rounded" onclick="approval()" shiro:hasPermission="receipt:receiptHeader:review"> | |
89 | 89 | <i class="fa fa-level-up"></i> 审核通过 |
90 | 90 | </a> |
91 | + <a class="btn btn-outline btn-primary btn-rounded" onclick="addPool()" shiro:hasPermission="receipt:receiptHeader:addPool"> | |
92 | + <i class="fa fa-check-circle"></i> 加入订单池 | |
93 | + </a> | |
91 | 94 | <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" shiro:hasPermission="receipt:receiptHeader:remove"> |
92 | 95 | <i class="fa fa-trash-o"></i> 删除 |
93 | 96 | </a> |
... | ... | @@ -389,7 +392,7 @@ |
389 | 392 | actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="#" onclick="arrival(\'' + row.id + '\')" ><i class="fa fa-edit"></i>入库预约</a> '); |
390 | 393 | } |
391 | 394 | if (row.firstStatus ==150 || row.lastStatus == 150 ){ |
392 | - actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')" ><i class="fa fa-edit"></i>到货通知</a> '); | |
395 | + actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="#" onclick="arrivalNotice(\'' + row.id + '\')" ><i class="fa fa-edit"></i>到货通知</a> '); | |
393 | 396 | } |
394 | 397 | if (row.firstStatus ==180 || row.lastStatus == 180 ){ |
395 | 398 | actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="#" onclick="check(\'' + row.id + '\')" ><i class="fa fa-edit"></i>质检</a> '); |
... | ... | @@ -474,7 +477,17 @@ |
474 | 477 | }, |
475 | 478 | { |
476 | 479 | field : 'qcCheck', |
477 | - title : '是否质检' | |
480 | + title : '是否质检', | |
481 | + align : "center", | |
482 | + formatter: function(value, row, index) { | |
483 | + var actions = []; | |
484 | + if (value == 0) { | |
485 | + actions.push("<span class='badge badge-info'>是</span>"); | |
486 | + } else { | |
487 | + actions.push("<span class='badge badge-info'>否</span>"); | |
488 | + } | |
489 | + return actions.join(''); | |
490 | + } | |
478 | 491 | }, |
479 | 492 | { |
480 | 493 | field : 'projectNo', |
... | ... | @@ -541,8 +554,13 @@ |
541 | 554 | visible:false |
542 | 555 | }, |
543 | 556 | { |
557 | + field : 'statusFlowCode', | |
558 | + title : '流程编码' | |
559 | + }, | |
560 | + { | |
544 | 561 | field : 'isVirtualBom', |
545 | 562 | title : '是否虚拟套件', |
563 | + align : "center", | |
546 | 564 | formatter: function(value, row, index) { |
547 | 565 | return $.table.selectDictLabel(isVirtualBoms, value); |
548 | 566 | } |
... | ... | @@ -807,6 +825,27 @@ |
807 | 825 | var data = { "id": id }; |
808 | 826 | $.operate.submit(url, "post", "json", data); |
809 | 827 | } |
828 | + | |
829 | + function arrivalNotice(id) { | |
830 | + var url = prefix+"/arrivalNotice"; | |
831 | + var data = { "id": id }; | |
832 | + $.operate.submit(url, "post", "json", data); | |
833 | + } | |
834 | + | |
835 | + function addPool() { | |
836 | + var rows=$("#bootstrap-table").bootstrapTable('getSelections'); | |
837 | + if (rows.length == 0) { | |
838 | + $.modal.alertWarning("请至少选择一条记录"); | |
839 | + return; | |
840 | + } | |
841 | + var url = prefix+"/addPool"; | |
842 | + var ids = ""; | |
843 | + for(var i=0; i<rows.length; i++) { | |
844 | + ids = ids + rows[i].id + "," | |
845 | + } | |
846 | + var data = { "ids": ids.substring(0, ids.length-1),"approval": 100 }; | |
847 | + $.operate.submit(url, "post", "json", data); | |
848 | + } | |
810 | 849 | </script> |
811 | 850 | </body> |
812 | 851 | </html> |
813 | 852 | \ No newline at end of file |
... | ... |
src/main/resources/templates/receipt/receiving/receiving.html
... | ... | @@ -189,15 +189,11 @@ |
189 | 189 | updateUrl: prefix + "/edit/{id}", |
190 | 190 | removeUrl: prefix + "/remove", |
191 | 191 | contentType: "application/x-www-form-urlencoded", |
192 | - // search: true, //搜索 | |
193 | - // showRefresh: true,//刷新 | |
194 | - // showToggle:true, //视图切换 | |
195 | 192 | clickToSelect: true, |
196 | - // showColumns:true, //列选择 | |
197 | - // detailView:true, | |
198 | - // showExport: true, //导出 | |
199 | - // exportDataType: "all", //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据 | |
200 | 193 | modalName: "收货", |
194 | + onRefresh: function(){ | |
195 | + | |
196 | + }, | |
201 | 197 | columns: [ |
202 | 198 | { |
203 | 199 | field:'work', |
... | ... | @@ -367,6 +363,7 @@ |
367 | 363 | } |
368 | 364 | localStorage.removeItem("receiving_code"); |
369 | 365 | } |
366 | + | |
370 | 367 | receiving_refresh(); |
371 | 368 | |
372 | 369 | function remove(id) { |
... | ... | @@ -390,7 +387,18 @@ |
390 | 387 | ids += ","; |
391 | 388 | } |
392 | 389 | var data = { "ids": ids }; |
393 | - $.operate.submit(url, "post", "json", data); | |
390 | + $.modal.loading("正在处理中,请稍后..."); | |
391 | + var config = { | |
392 | + url: url, | |
393 | + type: "post", | |
394 | + dataType: "json", | |
395 | + data: data, | |
396 | + success: function(result) { | |
397 | + $.operate.ajaxSuccess(result); | |
398 | + list_receiptInfo($("#code").val()); | |
399 | + } | |
400 | + }; | |
401 | + $.ajax(config) | |
394 | 402 | } |
395 | 403 | |
396 | 404 | function cancelPositioning() { |
... | ... | @@ -406,7 +414,20 @@ |
406 | 414 | ids += ","; |
407 | 415 | } |
408 | 416 | var data = { "ids": ids }; |
409 | - $.operate.submit(url, "post", "json", data); | |
417 | + | |
418 | + $.modal.loading("正在处理中,请稍后..."); | |
419 | + var config = { | |
420 | + url: url, | |
421 | + type: "post", | |
422 | + dataType: "json", | |
423 | + data: data, | |
424 | + success: function(result) { | |
425 | + $.operate.ajaxSuccess(result); | |
426 | + list_receiptInfo($("#code").val()); | |
427 | + } | |
428 | + }; | |
429 | + $.ajax(config) | |
430 | + | |
410 | 431 | } |
411 | 432 | |
412 | 433 | function batRemove() { |
... | ... | @@ -418,11 +439,22 @@ |
418 | 439 | var url = ctx+"receipt/receiptContainerDetail/remove"; |
419 | 440 | var ids = ""; |
420 | 441 | for (var i = 0; i<rows.length; i++){ |
421 | - ids += rows[i].receiptContainerId; | |
442 | + ids += rows[i].id; | |
422 | 443 | ids += ","; |
423 | 444 | } |
424 | 445 | var data = { "ids": ids }; |
425 | - $.operate.submit(url, "post", "json", data); | |
446 | + var config = { | |
447 | + url: url, | |
448 | + type: "post", | |
449 | + dataType: "json", | |
450 | + data: data, | |
451 | + success: function(result) { | |
452 | + $.operate.ajaxSuccess(result); | |
453 | + list_receiptInfo($("#code").val()); | |
454 | + list_select($("#code").val()); | |
455 | + } | |
456 | + }; | |
457 | + $.ajax(config) | |
426 | 458 | } |
427 | 459 | </script> |
428 | 460 | </body> |
... | ... |