|
1
|
<!DOCTYPE HTML>
|
|
2
3
4
5
6
7
8
|
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="white-bg">
<div class="row">
<div class="col-sm-12">
<div class="col-sm-12 select-info">
|
|
9
|
<div class="select-list">
|
|
10
11
12
|
<form id="cycleHeader-form">
<ul>
<li>
|
|
13
|
调整主单编码:<input type="text" id="adjustCode" name="adjustCode"/>
|
|
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
</li>
<li>
调整单明细ID:<input id="id" type="text" name="id"/>
</li>
<li>
货主编码:<input id="companyCode" type="text" name="companyCode"/>
</li>
<li>
盘点单编码:<input id="cycleCountCode" type="text" name="cycleCountCode"/>
</li>
<li>
盘点明细状态:<input id="cycleDetailId" type="text" name="cycleDetailId"/>
</li>
<li>
质检单编码:<input id="checkCode" type="text" name="checkCode"/>
</li>
<li>
属性号:<input id="attributeId" type="text" name="attributeId"/>
</li>
<li>
质检单明细ID:<input id="checkDetailId" type="text" name="checkDetailId"/>
</li>
<li>
调整单关联单编码:<input id="referCode" type="text" name="referCode"/>
</li>
<li>
调整单关联明细行号:<input id="referDetailId" type="text" name="referDetailId"/>
</li>
<li>
容器:<input id="containerCode" type="text" name="containerCode"/>
</li>
<li>
库位:<input id="locationCode" type="text" name="locationCode"/>
</li>
<li>
物料编码:<input id="materialCode" type="text" name="materialCode"/>
</li>
<li>
物料名称:<input id="materialName" type="text" name="materialName"/>
</li>
<li>
物料规格:<input id="materialSpec" type="text" name="materialSpec"/>
</li>
<li>
|
|
58
59
|
调整类型:<select name="problemType"
th:with="problemType=${@dict.getType('adjustType')}">
|
|
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
<option value="">所有</option>
<option th:each="e : ${problemType}" th:text="${e['dictLabel']}"
th:value="${e['dictValue']}"></option>
</select>
</li>
<li>
调整明细状态:<select name="status"
th:with="status=${@dict.getType('cyclecountStatus')}">
<option value="">所有</option>
<option th:each="e : ${status}" th:text="${e['dictLabel']}"
th:value="${e['dictValue']}"></option>
</select>
</li>
<li>
创建人:<input id="createdBy" type="text" name="createdBy"/>
</li>
<li class="time">
<label>创建时间: </label>
<input type="text" class="time-input" id="startTime" placeholder="开始时间"
name="createdBegin"/>
<span>-</span>
<input type="text" class="time-input" id="endTime" placeholder="结束时间"
name="createdEnd"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
class="fa fa-search"></i> 搜索</a>
</li>
</ul>
</form>
|
|
91
92
|
</div>
</div>
|
|
93
|
<div class="btn-group hidden-xs" id="toolbar" role="group">
|
|
94
95
|
<a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()">
<i class="fa fa-plus"></i> 新增
|
|
96
|
</a>
|
|
97
98
99
100
|
<!--<a class="btn btn-outline btn-danger btn-rounded" onclick="addAdjust()"/>
<!–shiro:hasPermission="inventory:cyclecountAdjustDetail:addAdjust"–>
<i class="fa fa-vcard"></i>调整
</a>-->
|
|
101
102
103
104
|
<!--<a class="btn btn-outline btn-danger btn-rounded" onclick="createCyclecountWithGapQty()"
shiro:hasPermission="inventoryHeader:cycleCountDetail:cyclecountRepeat">
<i class="fa fa-vcard"></i> 差异复盘
</a>-->
|
|
105
|
<!--<a class="btn btn-outline btn-danger btn-rounded" onclick="adjust()"
|
|
106
|
shiro:hasPermission="inventoryHeader:cycleCountDetail:adjust">
|
|
107
108
|
<i class="fa fa-vcard"></i> 差异库存调整
</a>-->
|
|
109
110
111
|
<!--<a class="btn btn-outline btn-success btn-rounded" onclick="$.table.refresh()">
<i class="fa fa-refresh"></i> 刷新
</a>-->
|
|
112
113
114
115
116
117
|
</div>
<table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table>
</div>
</div>
<div th:include="include :: footer"></div>
<script th:inline="javascript">
|
|
118
119
|
var prefix = ctx + "inventory/adjustDetail";
var prefix_head = ctx + "inventory/adjustHeader";
|
|
120
121
|
var type2 = [[${@dict.getType('adjustType')}]];
var adjustStatus = [[${@dict.getType('adjustStatus')}]];
|
|
122
123
|
var inventoryStatus = [[${@dict.getType('inventoryStatus')}]];
var created;
|
|
124
125
|
$(function () {
|
|
126
127
128
129
130
131
|
update();
});
function update() {
let adjustCode=null;
let options = {
url:prefix + "/list",
|
|
132
|
modalName: "调整单明细",
|
|
133
134
135
|
sortName: "id",
sortOrder: "desc",
search: false,
|
|
136
|
showRefresh: true,
|
|
137
138
|
columns: [
{
|
|
139
140
|
radio: true
},
|
|
141
|
{
|
|
142
143
144
145
146
147
148
149
150
|
title: '调整操作',
align: 'center',
formatter: function (value, row, index) {
var actions = [];
actions.push('<a class="btn btn-warning btn-xs " href="#" onclick="$.operate.addAdjust()"><i class="fa fa-trash-o"></i>调整</a> ');
return actions.join('');
}
},
{
|
|
151
152
|
field: 'id',
title: '明细id',
|
|
153
154
155
156
157
158
|
sortable: true
},
{
field: 'adjustCode',
title: '调整主单编码',
visible: true
|
|
159
160
|
},
{
|
|
161
162
|
field: 'warehouseCode',
title: '仓库',
|
|
163
164
165
166
167
168
169
|
visible: false
},
{
field: 'companyCode',
title: '货主'
},
{
|
|
170
|
field: 'cycleCountCode',
|
|
171
172
173
|
title: '盘点单编码',
},
{
|
|
174
175
176
177
|
field: 'cycleDetailId',
title: '盘点单明细ID',
sortable: true,
visible: true
|
|
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
|
},
{
field: 'locationCode',
title: '库位编号',
},
{
field: 'containerCode',
title: '容器编号',
},
{
field: 'materialCode',
title: '物料编码',
},
{
field: 'materialName',
title: '物料名称',
},
{
|
|
198
|
field: 'materialSpec',
|
|
199
200
201
202
|
title: '物料规格',
},
{
|
|
203
204
205
|
field: 'materialUnit',
title: '物料单位',
|
|
206
207
|
},
{
|
|
208
209
210
|
field: 'checkCode',
title: '质检单号',
visible: true
|
|
211
212
|
},
{
|
|
213
214
|
field: 'checkDetailId',
title: '质检单明细行号',
|
|
215
|
visible: true
|
|
216
217
|
},
{
|
|
218
219
220
|
field: 'referCode',
title: '调整单关联单号',
visible: true
|
|
221
222
|
},
{
|
|
223
224
|
field: 'referDetailId',
title: '调整单关联明细ID',
|
|
225
|
visible: true
|
|
226
|
},
|
|
227
|
|
|
228
|
{
|
|
229
230
|
field: 'problemType',
title: '调整类型',
|
|
231
232
233
234
235
236
|
align: 'center',
formatter: function (value, row, index) {
return $.table.selectDictLabel(type2, value);
},
visible: true,
//sortable: true
|
|
237
238
|
},
{
|
|
239
240
|
field: 'fromQty',
title: '调整前数量'
|
|
241
242
|
},
{
|
|
243
244
|
field: 'toQty',
title: '调整后数量'
|
|
245
246
|
},
{
|
|
247
248
|
field: 'gapQty',
title: '调整数量'
|
|
249
250
|
},
{
|
|
251
252
253
|
field: 'fromInventorySts',
title: '调整前状态',
visible: true
|
|
254
255
|
},
{
|
|
256
257
258
|
field: 'toInventorySts',
title: '调整后状态',
visible: true
|
|
259
260
|
},
{
|
|
261
262
263
|
field: 'attributeId',
title: '属性号',
sortable: true,
|
|
264
|
visible: false
|
|
265
|
|
|
266
267
|
},
{
|
|
268
|
field: 'inventorySts',
|
|
269
|
title: '库存状态',
|
|
270
|
formatter: function (value, row, index) {
|
|
271
272
|
return $.table.selectDictLabel(inventoryStatus, value);
},
|
|
273
|
sortable: true
|
|
274
275
276
277
278
|
},
{
field: 'created',
title: '创建时间',
|
|
279
|
sortable: true
|
|
280
281
282
283
284
285
|
},
{
field: 'createdBy',
title: '创建用户'
},
{
|
|
286
287
288
|
field: 'agreeTime',
title: '审批时间',
sortable: true
|
|
289
290
|
},
{
|
|
291
292
|
field: 'agreeBy',
title: '审批人'
|
|
293
294
295
|
},
{
field: 'status',
|
|
296
|
title: '调整状态',
|
|
297
|
formatter: function (value, row, index) {
|
|
298
|
return $.table.selectDictLabel(adjustStatus, value);
|
|
299
|
},
|
|
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
|
sortable: true
},
{
field: 'Remark',
title: '备注',
visible: true
},
{
field: 'version',
title: '数据版本',
visible: false
},
{
field: 'processStamp',
title: '处理标记',
visible: false
},
|
|
317
318
319
320
321
322
323
324
325
|
{
title: '操作',
align: 'center',
formatter: function (value, row, index) {
var actions = [];
actions.push('<a class="btn btn-danger btn-xs" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a> ');
return actions.join('');
}
}
|
|
326
|
|
|
327
328
|
]
};
|
|
329
|
let url = location.search; //获取url中"?"符后的字串
|
|
330
|
if (url.indexOf("?") != -1) { //判断是否有参数
|
|
331
|
let str = url.substr(1); //从第一个字符开始 因为第0个是?号 获取所有除问号的所有符串
|
|
332
333
|
let strs = url.substr(1).split("=");
$("#adjustCode").val(strs[1]);
|
|
334
|
options.queryParams=function(params) {
|
|
335
|
|
|
336
337
|
return {
// 传递参数查询参数
|
|
338
|
adjustCode: strs[1],
|
|
339
340
341
342
343
344
345
346
347
348
349
350
|
pageSize: params.limit,
pageNum: params.offset / params.limit + 1,
searchValue: params.search,
orderByColumn: params.sort,
isAsc: params.order
};
};
adjustCode=str.split("=")[1];
$.table.init(options);
}
else{
$.table.init(options);
|
|
351
|
}
|
|
352
353
354
355
356
357
|
/*$.ajax({
url: prefix_head + "/getHeader",
type: "post",
data: {
id: $('#cyclecountAdjustId').val()
|
|
358
|
},
|
|
359
|
success: function (value) {
|
|
360
361
|
if (value.data) {
$('#code').val(value.data.code);
|
|
362
|
// $('#type').val(value.data.typeLabel);
|
|
363
364
|
$('#status').val(value.data.statusLabel);
$('#created').val(value.data.created);
|
|
365
366
|
var text_val = $('#created').val();
$('#created').val(text_val.replace("T", " "));
|
|
367
368
|
//$('#createdBy').val(value.data.createdBy);
$('#lastUpdated').val(value.data.lastUpdated);
|
|
369
370
|
var text_val_t = $('#lastUpdated').val();
$('#lastUpdated').val(text_val_t.replace("T", " "));
|
|
371
372
373
|
//$('#lastUpdatedBy').val(value.data.lastUpdatedBy);
}
}
|
|
374
|
})*/
|
|
375
376
377
378
379
380
381
|
}
/**盘点差异调整*/
function addAdjust() {
var row = $('#bootstrap-table').bootstrapTable('getSelections');
$.modal.confirm("注意:该操作将更改库存,当实盘数量为0且库位上只剩空容器时,请手动执行空托出库任务,容器上有货则无需其他操作!",
|
|
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
|
function () {
var cyclecountAdjustId = $('#cyclecountAdjustId').val();
var companyCode = $('#companyCode').val();
var code = $('#code').val();
var cyclecountHeadCode = $('#sourceCode').val();
//判断有没有选取明细条目,进的页面不同
if (row.length !== 0) {
/*判断是否已经调整过*/
if (row[0].status == 40) {
$.modal.msg('该条明细已调整,请勿重复调整!')
} else {
$.modal.open("差异调整单", prefix + "/adjustEdit?id=" + row[0].id)
}
} else {
$.modal.open("调整单", prefix + "/addAdjust?cyclecountAdjustId=" + cyclecountAdjustId + "&companyCode=" + companyCode + "&code=" + code + "&cyclecountHeadCode=" + cyclecountHeadCode);
}
});
|
|
399
|
}
|
|
400
|
|
|
401
|
//
|
|
402
|
function open(title, url, width, height) {
|
|
403
404
405
406
|
if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {
width = 'auto';
height = 'auto';
}
|
|
407
|
if (title == null) {
|
|
408
409
|
title = false;
}
|
|
410
411
|
if (url == null) {
url = "404.html";
|
|
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
|
}
if ($.common.isEmpty(width)) {
width = 800;
// width = ($(window).width() - 100);
}
if ($.common.isEmpty(height)) {
height = ($(window).height() - 50);
}
layer.open({
type: 2,
area: [width + 'px', height + 'px'],
fix: false,
//不固定
maxmin: true,
shade: 0.3,
title: title,
content: url
// shadeClose: true, //点击遮罩关闭层
})
}
/*
* 差异复盘
*/
function createCyclecountWithGapQty() {
|
|
437
|
$.modal.confirm("确认进行差异复盘么?该操作会将有差异的明细重新生成一个新的盘点单。", function () {
|
|
438
|
var url = prefix + "/createCyclecountWithGapQty";
|
|
439
|
var data = {"headId": $('#headId').val()};
|
|
440
441
442
443
|
postInner(url, data);
});
}
|
|
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
|
/* //调整差异库存
function adjust() {
$.modal.confirm("注意:该操作将更改库存,当实盘数量为0且库位上只剩空容器时,请手动执行空托出库任务,容器上有货则无需其他操作!",
function() {
var url = prefix + "/adjust";
var data = { "headId": $('#headId').val() };
postInner(url,data);
});
}
function postInner(url,data) {
$.modal.loading("正在处理中,请稍后...");
$.ajax({
url:url,
type:"post",
data:data,
success:function (result) {
if (result.code == web_status.SUCCESS) {
$.modal.msgSuccess(result.msg);
update();
} else {
$.modal.alertError(result.msg);
}
$.modal.closeLoading();
|
|
467
|
}
|
|
468
469
|
})
}*/
|
|
470
|
|
|
471
472
473
474
475
476
|
/* //下发单条盘点
function outcheck(id) {
var url = prefix + "/createCyccoutTaskByDetailId";
var data = { "detailId": id };
postInner(url,data);
}*/
|
|
477
478
479
480
481
|
</script>
</body>
</html>
|