Blame view

src/main/resources/templates/receipt/receiving/receiving.html 21.5 KB
tangying authored
1
2
3
4
5
<!DOCTYPE HTML>
<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>
<style>
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
	.table-striped-left{
		width: 41%;
		/*margin-right: 4px;*/
	}
	.table-striped-right{
		/*right: -10px;*/
		width: 58%;
		float: right;
	}
	.info_text{
		float: right;
	}
	.info_text li{
		font-size: 16px;
	}
	.info_text li span{
		font-size: 20px;
		font-weight: bold;
		color: rgb(28,132,198);
	}
tangying authored
26
27
28
29
</style>
<body class="gray-bg">
<div class="container-div">
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
	<div class="row">
		<div class="col-sm-12 select-info">
			<form id="dept-form">
				<div class="select-list">
					<ul>
						<li>
							收货单号:<input type="text" id="code" name="deptName"/>
						</li>
						<li>
							<a class="btn btn-primary btn-rounded btn-sm" id="list-btn"><i class="fa fa-search"></i>&nbsp;搜索</a>
						</li>
					</ul>
					<ul class="info_text">
						<li>物料总数:<span id="material_length"></span></li>
						<li>总单据数量:<span id="qty_length"></span></li>
						<li>已收货数量:<span id="qtyCompleted_length"></span></li>
					</ul>
				</div>
			</form>
		</div>

		<div class="col-sm-12 select-info table-striped-left" style="padding-top: 20px;">
			<table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover text-nowrap"></table>
		</div>
		<div class="col-sm-12 select-info table-striped-right">
			<ul class="select-list">
56
57
58
59
60
61
				<li style="display: none">id:<input type="text" id="detailId"/></li>
				<li>收货数量:<input type="text" id="receiveNum"/></li>
				<li>容器编号:<input type="text" id="containerCode"/></li>
				<li>
					<button class="btn btn-sm btn-success" onclick="receipt()">组盘</button>
				</li>
62
63
			</ul>
			<div class="btn-group hidden-xs" id="toolbar1" role="group">
64
65
				<a class="btn btn-outline btn-success btn-rounded" onclick="positioning()"
				   shiro:hasPermission="receipt:receiptDetail:add">
66
67
					<i class="fa fa-map-pin"></i> 定位
				</a>
68
69
				<a class="btn btn-outline btn-info btn-rounded" onclick="cancelPositioning()"
				   shiro:hasPermission="receipt:receiptDetail:remove">
70
71
					<i class="fa fa-times"></i> 取消定位
				</a>
72
73
				<a class="btn btn-outline btn-danger btn-rounded" onclick="batRemove()"
				   shiro:hasPermission="receipt:receiptDetail:remove">
74
75
					<i class="fa fa-trash-o"></i> 取消收货
				</a>
76
77
				<a class="btn btn-outline btn-warning btn-rounded" onclick="createTask()"
				   shiro:hasPermission="receipt:receiptContainer:add">
78
79
					<i class="fa fa-edit"></i> 生成任务
				</a>
80
81
82
				<a class="menuItem btn btn-outline btn-warning btn-rounded" th:href="@{/task/taskHeader?InternalTaskType=100}">
					<i class="fa fa-edit"></i> 跳转任务页面
				</a>
83
			</div>
84
85
86
			<table id="bootstrap-table1" data-mobile-responsive="true"
				   class="table table-bordered table-hover text-nowrap"></table>
			<ul class="select-list top_text">
87
88
				<li><span class="table-title">本物料库存</span></li>
			</ul>
89
90
91
92
93
94
95
96
97
98
99
			<table id="bootstrap-table2" data-mobile-responsive="true"
				   class="table table-bordered table-hover text-nowrap"></table>

			<ul class="select-list top_text">
				<li>空容器类型:<select name="type" id="containerType" th:with="typeList=${@containerType.getCode()}">
					<option value="">所有</option>
					<option th:each="c:${typeList}" th:text="${c['name']}" th:value="${c['code']}"></option>
				</select></li>
				<li>
					<button class="btn btn-sm btn-success" onclick="containerTypeSearch()">搜索</button>
				</li>
100
			</ul>
101
102
			<table id="bootstrap-table3" data-mobile-responsive="true"
				   class="table table-bordered table-hover text-nowrap"></table>
103
104
		</div>
	</div>
tangying authored
105
106
107
108
109
110
111
</div>
<div th:include="include :: footer"></div>
<script th:inline="javascript">
    var addFlag = [[${@permission.hasPermi('receipt:receiving:add')}]];
    var removeFlag = [[${@permission.hasPermi('receipt:receiving:remove')}]];
    var prefix = ctx + "receipt/receiving";
    var Types = [[${@dict.getType('taskType')}]];
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
    var Status=[[${@dict.getType('receiptContainerHeaderStatus')}]];
	var inventoryStatus =[[${@dict.getType('inventoryStatus')}]];

	$(function () {
		$("#bootstrap-table3").bootstrapTable({
			url: ctx+'config/container/emptyContainer',
			iconSize: "outline",
			modalName: "空盒",
			pagination: true,   // 是否显示分页(*)
			pageNumber: 1,// 初始化加载第一页,默认第一页
			method: 'post',
			pageSize: 5, // 每页的记录行数(*)
			showRefresh: true,
			pageList: [10, 25, 50],
			contentType: "application/x-www-form-urlencoded",
			columns: [{
				field : 'code',
				title : '容器编号'
			},{
				field : 'locationCode',
				title : '库位编号'
			}]
		});
	});
tangying authored
136
137
138
139
140
141
142
143
144

    function list_select(code) {
        $.ajax({
            url: prefix + "/scanBill",
            type: 'post',
            datatype: 'json',
            data: {
                code: code
            },
145
            error:function (response) {
tangying authored
146
147
148
                console.log(response);
            },
            success: function (value) {
149
150
                var qty_show=0;
                var qtyCompleted_show=0;
tangying authored
151
                $("#bootstrap-table").bootstrapTable('removeAll');
152
                if(value.data){
tangying authored
153
                    for (var i = 0; i < value.data.length; i++) {
肖超群 authored
154
                        if (value.data[i].qty > value.data[i].taskQty) {
tangying authored
155
156
                            $("#bootstrap-table").bootstrapTable('insertRow', {
                                index: 0, row: {
157
                                    projectNo:value.data[i].project,
tangying authored
158
                                    id: value.data[i].id,
159
									materialName: value.data[i].materialName,
tangying authored
160
161
162
                                    receiptId: value.data[i].receiptId,
                                    receiptCode: value.data[i].receiptCode,
                                    materialCode: value.data[i].materialCode,
肖超群 authored
163
164
                                    qty: value.data[i].qty,
                                    taskQty: value.data[i].taskQty,
165
                                    inventorySts: value.data[i].inventorySts,
166
									materialUnit: value.data[i].materialUnit
tangying authored
167
168
169
                                }
                            });
                        }
肖超群 authored
170
171
						qty_show=value.data[i].qty + qty_show;
                        qtyCompleted_show=value.data[i].taskQty + qtyCompleted_show;
tangying authored
172
173
174
175
                    }
                    $("#material_length").text(value.data.length);
                    $("#qty_length").text(qty_show);
                    $("#qtyCompleted_length").text(qtyCompleted_show);
176
177
                }
                else    {
tangying authored
178
179
180
181
182
183
184
185
186
187
188
189
190
191
                    console.log("收货单不存在!")
                }
            }
        })
    }

    function list_receiptInfo(code) {
        $.ajax({
            url: prefix + "/getReceiptInfoByBill",
            type: 'post',
            datatype: 'json',
            data: {
                code: code
            },
192
            error:function (response) {
tangying authored
193
194
195
196
                console.log(response);
            },
            success: function (value) {
                $("#bootstrap-table1").bootstrapTable('removeAll');
197
                if(value.data){
周鸿 authored
198
199
					$("#bootstrap-table1").bootstrapTable('load',value.data);
                    /*for (var i = 0; i < value.data.length; i++) {
tangying authored
200
201
                        $("#bootstrap-table1").bootstrapTable('insertRow', {
                            index: 0, row: {
202
                                projectNo :value.data[i].projectNo,
tangying authored
203
                                id: value.data[i].id,
204
205
								receiptContainerId:value.data[i].receiptContainerId,
								receiptDetailId:value.data[i].receiptDetailId,
tangying authored
206
207
208
209
210
                                containerCode: value.data[i].containerCode,
                                locationCode: value.data[i].locationCode,
                                materialCode: value.data[i].materialCode,
                                materialName: value.data[i].materialName,
                                materialSpec: value.data[i].materialSpec,
211
								taskType:value.data[i].taskType,
tangying authored
212
213
214
215
216
217
                                qty: value.data[i].qty,
                                status: value.data[i].status,
                                created: value.data[i].created,
                                createdBy: value.data[i].createdBy
                            }
                        });
周鸿 authored
218
                    }*/
219
220
                }
                else    {
tangying authored
221
222
223
224
225
226
227
228
                    console.log("没有查找到入库容器!")
                }
            }
        })
    }

    $("#list-btn").click(initTable);
229
    $("body").bind("keypress",function(e){
tangying authored
230
231
232
233
234
235
236
        // 兼容FF和IE和Opera
        var theEvent = e || window.event;
        var code = theEvent.keyCode || theEvent.which || theEvent.charCode;
        if (code == 13) {
            e.preventDefault();
            //回车执行查询
            initTable();
237
           // list_select($("#code").val());
tangying authored
238
239
240
        }
    });
241
242
    function initTable(){
        var receiptCode=$("#code").val();
tangying authored
243
244
        list_select(receiptCode);
        list_receiptInfo(receiptCode);
245
246
247
		$("#bootstrap-table1").bootstrapTable('removeAll');
		$("#bootstrap-table2").bootstrapTable('removeAll');
	}
tangying authored
248
249
250
251
252
253
254
255
256

    $("#bootstrap-table").bootstrapTable({
        // url: prefix + "/list",
        createUrl: prefix + "/add",
        updateUrl: prefix + "/edit/{id}",
        removeUrl: prefix + "/remove",
        contentType: "application/x-www-form-urlencoded",
        clickToSelect: true,
        modalName: "收货",
257
		onRefresh: function(){
258
259
260
261
		},
        onClickRow:function(row,ele,field){
            let code=$("#code").val();
262
            $("#detailId").val(row.id);
肖超群 authored
263
            $("#receiveNum").val(row.qty-row.taskQty);
264
            $.ajax({
265
266
267
268
269
                url:prefix+'/getInventoryInfo',
                type:'post',
                data:{
                    code:code,
                    id:row.id
270
                },
271
                success:res=>{
272
                    // $("#bootstrap-table1").bootstrapTable('load',res.data.list);
273
                    $("#bootstrap-table2").bootstrapTable('load',res.data.inventoryList);
274
                    // $("#bootstrap-table3").bootstrapTable('load',res.data.containerList);
tangying authored
275
                }
276
277
278
            })
        },
        columns: [
tangying authored
279
280
281
282
283
284
285
286
287
            // {
            //     field : 'id',
            //     title : 'id号'
            // },
            // {
            //     field : 'receiptCode',
            //     title : '收货单编码'
            // },
            {
288
289
                field : 'id',
                title : '明细id'
tangying authored
290
291
            },
            {
292
293
                field : 'materialCode',
                title : '物料编码'
tangying authored
294
295
            },
            {
296
297
                field: "materialName",
                title: "名称"
tangying authored
298
299
            },
            {
肖超群 authored
300
                field : 'qty',
301
                title : '单据数量'
tangying authored
302
303
            },
            {
肖超群 authored
304
                field : 'taskQty',
305
                title : '已入数量'
tangying authored
306
307
            },
            {
308
309
                field : 'inventorySts',
                title : '库存状态'
tangying authored
310
311
            },
            {
312
313
                field : 'projectNo',
                title : '项目号'
tangying authored
314
315
            },
            {
316
317
                field : 'materialUnit',
                title : '单位'
tangying authored
318
319
            },
320
            ]
tangying authored
321
322
323
324
325
326
    });

    $("#bootstrap-table1").bootstrapTable({
        removeUrl: ctx + "receipt/receiptContainerDetail/remove",
        // search: true, //搜索
        showRefresh: true, //刷新
327
        showToggle:true, //视图切换
tangying authored
328
        clickToSelect: true,
329
        showColumns:true, //列选择
tangying authored
330
        // detailView:true,
331
		toolbar: "#toolbar1",
tangying authored
332
333
334
335
        showExport: true, //导出
        exportDataType: "all",  //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据
        modalName: "入库组盘",
        iconSize: "outline",
336
        toolbar: "#toolbar1",
tangying authored
337
        contentType: "application/x-www-form-urlencoded",
338
        onRefresh: function(){
tangying authored
339
340
341
            list_receiptInfo($("#code").val());
        },
        columns: [
342
            {
343
344
345
346
347
348
349
350
351
352
353
354
355
356
                checkbox: true,
				formatter:function (value,row,index){
					if(row.status < 10){
						return {
							checked : true,
							disabled: false
						}
					}else{
						return {
							checked : false,
							disabled: true
						}
					}
				}
357
            },
tangying authored
358
            {
359
360
                field : 'id',
                title : '组盘明细id',
mahuandong authored
361
                visible: false
tangying authored
362
363
            },
            {
364
365
366
                field : 'receiptContainerId',
                title : '组盘头id',
				visible: false
tangying authored
367
368
            },
            {
369
370
                field : 'containerCode',
                title : '容器编号'
tangying authored
371
            },
tongzhonghao authored
372
373
374
375
376
377
378
379
380
381
			{
				field : 'taskType',
				title : '任务状态',
				visible: false
			},
			{
				field : 'locationType',
				title : '库位类型',
				visible: false
			},
tangying authored
382
            {
383
384
                field : 'locationCode',
                title : '库位编号'
tangying authored
385
386
            },
            {
387
388
                field : 'materialCode',
                title : '物料编码'
tangying authored
389
390
            },
            {
391
392
                field:"materialName",
                title:"物料名称"
tangying authored
393
394
            },
            {
395
396
                field:"materialSpec",
                title:"物料规格"
tangying authored
397
398
            },
            {
399
400
                field : 'qty',
                title : '数量'
tangying authored
401
402
            },
            {
403
404
405
                field : 'project',
                title : '项目号',
				visible: false
tangying authored
406
407
            },
            {
408
409
                field : 'status',
                title : '组盘状态',
tangying authored
410
                align: 'center',
411
                formatter: function(value, row, index) {
tangying authored
412
413
414
415
                    return $.table.selectDictLabel(Status, value);
                }
            },
            {
416
417
                field : 'receiptDetailId',
                title : '入库单明细id'
tangying authored
418
419
            },
            {
420
421
                field : 'created',
                title : '创建时间'
tangying authored
422
423
            },
            {
424
425
                field : 'createdBy',
                title : '创建人'
tangying authored
426
427
428
429
            },
            {
                title: '操作',
                align: 'center',
430
431
				events:'operateEvents',
                formatter: function(value, row, index) {
tangying authored
432
433
434
                    var actions = [];
                    if (row.status == 0) {
                        actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>取消</a>');
435
					}
tangying authored
436
437
438
439
440
                    return actions.join('');
                }
            }]
    });
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
	$("#bootstrap-table2").bootstrapTable({
		removeUrl: ctx + "receipt/receiptContainerDetail/remove",
		clickToSelect: true,
		showColumns:true, //列选择
		showExport: true, //导出
		iconSize: "outline",
		toolbar: "#toolbar",
		exportDataType: "all",  //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据
		modalName: "入库组盘",
		pagination: true,   // 是否显示分页(*)
		pageNumber: 1,                                      // 初始化加载第一页,默认第一页
		pageSize: 5,                                       // 每页的记录行数(*)
		pageList: [10, 25, 50],
		contentType: "application/x-www-form-urlencoded",
		columns: [
			{
				field : 'containerCode',
				title : '容器编号'
			},
			{
				field : 'materialCode',
				title : '存货编码'
			},
			{
				field : 'materialName',
				title : '物料名称'
			},
			{
				field : 'materialSpec',
				title : '物料规格'
			},
			{
				field : 'qty',
				title : '数量'
			},
			{
				field : 'companyName',
				title : '货主'
			},
			{
				field : 'locationCode',
				title : '库位编号'
			},
			{
				field : 'status',
				title : '库存状态' ,
				align: 'center',
				formatter: function(value, row, index) {
					return $.table.selectDictLabel(inventoryStatus, value);
				}
			},
		]
	});
tangying authored
494
495
496
    window.operateEvents = {
        'click #qty': function (e, value, row, index) {
            var url = prefix + '/add?';
497
            jQuery.each(row, function(key, val) {
tangying authored
498
499
                url = url + key + "=" + encodeURI(val) + "&";
            });
500
501
            var modalName="入库组盘";
            $.modal.open("添加"+modalName,url);
tangying authored
502
503
504
505
506
507
508
509
        }
    };

    function receiving_refresh() {
        var receiving_code = localStorage.getItem("receiving_code");
        $("#code").val(receiving_code);
        if (receiving_code) {
            initTable();
510
		}
tangying authored
511
512
        localStorage.removeItem("receiving_code");
    }
513
tangying authored
514
515
516
    receiving_refresh();

    function remove(id) {
517
        $.modal.confirm("确定删除该组盘?", function() {
tangying authored
518
            var url = ctx + "receipt/receiptContainerDetail/remove";
519
520
            var data = { "ids": id };
            $.operate.submitAndCallback(url,  "post", "json", data, initTable);
tangying authored
521
522
523
        });
    }
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
	function positioning() {
		let rows = $("#bootstrap-table1").bootstrapTable('getSelections');
		if (rows.length == 0) {
			$.modal.alertWarning("请至少选择一条记录");
			return;
		}
		var url = ctx+"receipt/receiptContainerHeader/position";
		var ids = "";
		for (var i = 0; i<rows.length; i++){
			ids += rows[i].receiptContainerId;
			ids += ",";
		}
		var data = { "ids": ids };
		$.modal.loading("正在处理中,请稍后...");
		var config = {
			url: url,
			type: "post",
			dataType: "json",
			data: data,
			success: function(result) {
				$.operate.ajaxSuccess(result);
				list_receiptInfo($("#code").val());
			}
		};
		$.ajax(config)
		$.table.refresh("bootstrap-table1");
	}
552
553
554
555
556
557
558
559
	function refresh() {
		var receiptCode=$("#code").val();
		list_select(receiptCode);
		list_receiptInfo(receiptCode);
		$("#bootstrap-table1").bootstrapTable('removeAll');
		$("#bootstrap-table2").bootstrapTable('removeAll');
	}
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
	function cancelPositioning() {
		let rows = $("#bootstrap-table1").bootstrapTable('getSelections');
		if (rows.length == 0) {
			$.modal.alertWarning("请至少选择一条记录");
			return;
		}
		var url = ctx+"receipt/receiptContainerHeader/cancelPosition";
		var ids = "";
		for (var i = 0; i<rows.length; i++){
			ids += rows[i].receiptContainerId;
			ids += ",";
		}
		var data = { "ids": ids };

		$.modal.loading("正在处理中,请稍后...");
		var config = {
			url: url,
			type: "post",
			dataType: "json",
			data: data,
			success: function(result) {
				$.operate.ajaxSuccess(result);
				list_receiptInfo($("#code").val());
			}
		};
		$.ajax(config)
		$.table.refresh("bootstrap-table1");
	}

	function batRemove() {
		let rows = $("#bootstrap-table1").bootstrapTable('getSelections');
		if (rows.length == 0) {
			$.modal.alertWarning("请至少选择一条记录");
			return;
		}
		var url = ctx+"receipt/receiptContainerDetail/remove";
		var ids = "";
		for (var i = 0; i<rows.length; i++){
			ids += rows[i].id;
			ids += ",";
		}
		var data = { "ids": ids };
		var config = {
			url: url,
			type: "post",
			dataType: "json",
			data: data,
			success: function(result) {
				$.operate.ajaxSuccess(result);
				list_receiptInfo($("#code").val());
				list_select($("#code").val());
			}
		};
		$.ajax(config);
		$.table.refresh("bootstrap-table1");
	}
mahuandong authored
616
617
618
619
620
621
622
623
624
625
626
627
    function receipt() {
        let containerCode = $("#containerCode").val();
        let locationCode = '';
        Receiving(locationCode, containerCode);
    }

    /**
     * 组盘
     * @param locationCode
     * @param containerCode
     */
628
629
630
631
    function Receiving(locationCode,containerCode) {
        let receiptCode=$("#code").val();
        let num=$("#receiveNum").val();
        let receiptDetailId=$("#detailId").val();
632
        $.ajax({
633
634
635
636
            url:ctx + "receipt/receiving/save",
            type:'post',
            data:{
                receiptCode:receiptCode,
637
                qty: num,
638
639
640
                receiptDetailId:receiptDetailId,
                locationCode:locationCode,
                containerCode:containerCode
641
            },
642
643
            success:function (data) {
                if(data.code===200){
644
645
                    $.modal.msgSuccess('成功');
                    initTable();
646
647
                }
                else{
648
649
650
651
652
653
                    $.modal.msg(data.msg);
                }
            }
        })
    }
654
655
656
657
	function chooseStation(id) {
		var url = ctx + "receipt/receiptContainerHeader/chooseStation" + "/" +  id;
		$.modal.open("选择站台", url);
	}
658
659

    function createTask() {
660
661
662
663
664
		let rows=$("#bootstrap-table1").bootstrapTable('getSelections');
		if (rows.length == 0) {
			$.modal.alertWarning("请至少选择一条记录");
			return;
		}
tongzhonghao authored
665
666
		let zoneCode=rows[0].locationType;
		debugger;
667
		if(rows[0].taskType == 200 && zoneCode =='LK') {
668
			let ids = "";
669
			for(let i=0; i<rows.length; i++) {
670
671
672
673
674
				if(ids == "") {
					ids = rows[i].receiptContainerId;
				} else {
					ids = ids + "," + rows[i].receiptContainerId
				}
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
			}
			chooseStation(ids);
		} else {
			let url = ctx + "receipt/receiptContainerHeader/createTask";
			let ids = "";
			for(let i=0; i<rows.length; i++) {
				ids = ids + rows[i].receiptContainerId + ","
			}
			let data = { "ids": ids.substring(0, ids.length-1) };
			$.modal.loading("正在处理中,请稍后...");
			var config = {
				url: url,
				type: "post",
				dataType: "json",
				data: data,
				success: function(result) {
					if (result.code == web_status.SUCCESS) {
						$.modal.msgSuccess(result.msg);
						$.table.refresh("bootstrap-table1");
					} else {
						$.modal.alertError(result.msg);
					}
					$.modal.closeLoading();
				}
			};
			$.ajax(config)
		}
702
	}
703
704
705
706
707
708
	function containerTypeSearch() {
		var params = {
			query:{containerType:$("#containerType").val()}
		}
		$("#bootstrap-table3").bootstrapTable('refresh',params);
709
	}
tangying authored
710
711
</script>
</body>
712
</html>