From 10778ff6207c31641187acb487d4b67c0de59b24 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期一, 02 二月 2026 10:38:51 +0800
Subject: [PATCH] agv增加一个新单号防重复  ,增加一个手动呼叫agv

---
 src/main/webapp/static/js/task/task.js |  310 +++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 262 insertions(+), 48 deletions(-)

diff --git a/src/main/webapp/static/js/task/task.js b/src/main/webapp/static/js/task/task.js
index ff17d6e..22ad3df 100644
--- a/src/main/webapp/static/js/task/task.js
+++ b/src/main/webapp/static/js/task/task.js
@@ -1,7 +1,7 @@
 var pageCurr;
 layui.config({
     base: baseUrl + "/static/layui/lay/modules/"
-}).use(['table','laydate', 'form', 'admin'], function(){
+}).use(['table', 'laydate', 'form', 'admin'], function () {
     var table = layui.table;
     var $ = layui.jquery;
     var layer = layui.layer;
@@ -13,7 +13,7 @@
     tableIns = table.render({
         elem: '#task',
         headers: {token: localStorage.getItem('token')},
-        url: baseUrl+'/task/list/auth',
+        url: baseUrl + '/task/list/auth',
         page: true,
         limit: 15,
         limits: [15, 30, 50, 100, 200, 500],
@@ -22,10 +22,24 @@
         height: 'full-120',
         cols: [[
             {type: 'checkbox'}
-            ,{field: 'id', align: 'center',title: ''}
-            ,{field: 'taskType', align: 'center',title: '浠诲姟绫诲瀷锛� agv  , crn'}
-
-            ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
+            , {field: 'wrkNo', align: 'center', title: '宸ヤ綔鍙�', sort: true, width: 105}
+            , {field: 'agvWrkNo', align: 'center', title: 'AGV宸ヤ綔鍙�', width: 180}
+            , {field: 'ioTime$', align: 'center', title: '宸ヤ綔鏃堕棿', width: 160}
+            , {field: 'wrkSts$', align: 'center', title: '宸ヤ綔鐘舵��', width: 150}
+            , {field: 'ioType$', align: 'center', title: '鍏ュ嚭搴撶被鍨�', width: 150}
+            , {field: 'ioPri', align: 'center', title: '浼樺厛绾�', width: 80}
+            , {field: 'taskType$', align: 'center', title: '浠诲姟绫诲瀷', width: 120}
+            , {field: 'crnNo$', align: 'center', title: '鍫嗗灈鏈�', hide: true}
+            , {field: 'sourceStaNo$', align: 'center', title: '婧愮珯', width: 120}
+            , {field: 'sourceLocNo', align: 'center', title: '婧愬簱浣�', width: 120}
+            , {field: 'staNo$', align: 'center', title: '鐩爣绔�', width: 120}
+            , {field: 'locNo', align: 'center', title: '鐩爣搴撲綅', width: 120}
+            , {field: 'barcode', align: 'center', title: '鏉$爜', width: 110}
+            , {field: 'preHave', align: 'center', title: '鍏堝叆鍝�', hide: true}
+            , {field: 'takeNone', align: 'center', title: '绌烘搷浣�', hide: true}
+            , {field: 'modiUser$', align: 'center', title: '淇敼浜哄憳', hide: true}
+            , {field: 'modiTime$', align: 'center', title: '淇敼鏃堕棿', hide: true, width: 160}
+            , {fixed: 'right', title: '鎿嶄綔', align: 'center', toolbar: '#operate', width: 250}
         ]],
         request: {
             pageName: 'curr',
@@ -42,11 +56,11 @@
         response: {
             statusCode: 200
         },
-        done: function(res, curr, count) {
+        done: function (res, curr, count) {
             if (res.code === 403) {
-                top.location.href = baseUrl+"/";
+                top.location.href = baseUrl + "/";
             }
-            pageCurr=curr;
+            pageCurr = curr;
             limit();
         }
     });
@@ -54,7 +68,7 @@
     // 鐩戝惉鎺掑簭浜嬩欢
     table.on('sort(task)', function (obj) {
         var searchData = {};
-        $.each($('#search-box [name]').serializeArray(), function() {
+        $.each($('#search-box [name]').serializeArray(), function () {
             searchData[this.name] = this.value;
         });
         searchData['orderByField'] = obj.field;
@@ -68,23 +82,23 @@
     // 鐩戝惉澶村伐鍏锋爮浜嬩欢
     table.on('toolbar(task)', function (obj) {
         var checkStatus = table.checkStatus(obj.config.id).data;
-        switch(obj.event) {
+        switch (obj.event) {
             case 'addData':
                 showEditModel();
                 break;
             case 'deleteData':
-               if (checkStatus.length === 0) {
-                   layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
-                   return;
-               }
-               del(checkStatus.map(function (d) {
-                   return d.id;
-               }));
-               break;
+                if (checkStatus.length === 0) {
+                    layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+                    return;
+                }
+                del(checkStatus.map(function (d) {
+                    return d.id;
+                }));
+                break;
             case 'exportData':
-                admin.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
-                    var titles=[];
-                    var fields=[];
+                admin.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function () {
+                    var titles = [];
+                    var fields = [];
                     obj.config.cols[0].map(function (col) {
                         if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
                             titles.push(col.title);
@@ -92,7 +106,7 @@
                         }
                     });
                     var exportData = {};
-                    $.each($('#search-box [name]').serializeArray(), function() {
+                    $.each($('#search-box [name]').serializeArray(), function () {
                         exportData[this.name] = this.value;
                     });
                     var param = {
@@ -100,18 +114,18 @@
                         'fields': fields
                     };
                     $.ajax({
-                        url: baseUrl+"/task/export/auth",
+                        url: baseUrl + "/task/export/auth",
                         headers: {'token': localStorage.getItem('token')},
                         data: JSON.stringify(param),
-                        dataType:'json',
-                        contentType:'application/json;charset=UTF-8',
+                        dataType: 'json',
+                        contentType: 'application/json;charset=UTF-8',
                         method: 'POST',
                         success: function (res) {
                             layer.closeAll();
                             if (res.code === 200) {
-                                table.exportFile(titles,res.data,'xls');
+                                table.exportFile(titles, res.data, 'xls');
                             } else if (res.code === 403) {
-                                top.location.href = baseUrl+"/";
+                                top.location.href = baseUrl + "/";
                             } else {
                                 layer.msg(res.msg, {icon: 2})
                             }
@@ -123,17 +137,94 @@
     });
 
     // 鐩戝惉琛屽伐鍏蜂簨浠�
-    table.on('tool(task)', function(obj){
-        var data = obj.data;
+    table.on('tool(task)', function (obj) {
+        let data = obj.data;
         switch (obj.event) {
-            case 'edit':
-                showEditModel(data);
+            // 鏄庣粏灞曠ず
+            case 'detlShow':
+                wrkNo = data.wrkNo;
+                // 寮瑰眰鏄剧ず
+                layer.open({
+                    type: 2,
+                    title: '宸ヤ綔妗f槑缁�',
+                    maxmin: true,
+                    area: [top.detailWidth, top.detailHeight],
+                    shadeClose: true,
+                    content: 'taskDetl.html',
+                    success: function (layero, index) {
+                    }
+                });
                 break;
-            case "del":
-                del([data.id]);
+            // 瀹屾垚
+            case 'complete':
+                layer.confirm('纭瀹屾垚璇ョ瑪宸ヤ綔妗o紵', {title: '宸ヤ綔鍙凤細' + data.wrkNo, shadeClose: true}, function () {
+                    http.post(baseUrl + "/task/control", {workNo: data.wrkNo, type: 1}, function (res) {
+                        $(".layui-laypage-btn")[0].click();
+                        layer.msg(data.wrkNo + res.msg);
+                    })
+                    layer.closeAll();
+                });
+                break;
+            // 鍙栨秷
+            case 'cancel':
+                if (data.pdcType === "Y") {
+                    layer.confirm('褰撳墠浠诲姟鍏宠仈ERP閿�鍞崟锛屽彇娑堝皢閲嶆柊鐢熸垚鍑哄簱浣滀笟锛屾槸鍚︾户缁紵', {
+                        title: '宸ヤ綔鍙凤細' + data.wrkNo,
+                        shadeClose: true
+                    }, function () {
+                        http.post(baseUrl + "/task/control", {workNo: data.wrkNo, type: 2}, function (res) {
+                            $(".layui-laypage-btn")[0].click();
+                            layer.msg(data.wrkNo + res.msg);
+                        })
+                        layer.closeAll();
+                    });
+                } else {
+                    layer.confirm('纭鍙栨秷璇ョ瑪宸ヤ綔妗o紵', {
+                        title: '宸ヤ綔鍙凤細' + data.wrkNo,
+                        shadeClose: true
+                    }, function () {
+                        http.post(baseUrl + "/task/control", {workNo: data.wrkNo, type: 2}, function (res) {
+                            $(".layui-laypage-btn")[0].click();
+                            layer.msg(data.wrkNo + res.msg);
+                        })
+                        layer.closeAll();
+                    });
+                }
+                break;
+            //  鎷f枡鍏ュ簱
+            case 'pick':
+                layer.confirm('鎷f枡鍏ュ簱璇ョ瑪宸ヤ綔妗o紵', {title: '宸ヤ綔鍙凤細' + data.wrkNo, shadeClose: true}, function () {
+                    http.post(baseUrl + "/task/control", {workNo: data.wrkNo, type: 3}, function (res) {
+                        $(".layui-laypage-btn")[0].click();
+                        layer.msg(data.wrkNo + res.msg);
+                    })
+                    layer.closeAll();
+                });
+                break;
+            //  鍏堝叆鍝�
+            case 'preHave':
+                layer.confirm('浠诲姟鍙戠敓鍏堝叆鍝佸紓甯搞�傚闇�閲嶆柊鍏ュ簱锛岃纭繚璐х墿宸叉斁鑷冲爢鍨涙満鍑哄簱绔欙紒', {
+                    title: '宸ヤ綔鍙凤細' + data.wrkNo,
+                    shadeClose: true
+                }, function () {
+                    http.post(baseUrl + "/deal/preHave/start", {wrkNo: data.wrkNo}, function (res) {
+                        $(".layui-laypage-btn")[0].click();
+                        layer.msg(data.wrkNo + res.msg, {icon: 1});
+                    })
+                    layer.closeAll();
+                });
+                break;
+            //  绌烘搷浣�
+            case 'takeNone':
+                layer.confirm('浠诲姟鍙戦�佺┖鎿嶄綔寮傚父锛佹槸鍚︺�傘�傘�傘�傘�傘�傘�傘�傦紵', {
+                    title: '宸ヤ綔鍙凤細' + data.wrkNo,
+                    shadeClose: true
+                }, function () {
+                });
                 break;
         }
     });
+
 
     /* 寮圭獥 - 鏂板銆佷慨鏀� */
     function showEditModel(mData) {
@@ -148,19 +239,19 @@
                 form.on('submit(editSubmit)', function (data) {
                     var loadIndex = layer.load(2);
                     $.ajax({
-                        url: baseUrl+"/task/"+(mData?'update':'add')+"/auth",
+                        url: baseUrl + "/task/" + (mData ? 'update' : 'add') + "/auth",
                         headers: {'token': localStorage.getItem('token')},
                         data: data.field,
                         method: 'POST',
                         success: function (res) {
                             layer.close(loadIndex);
-                            if (res.code === 200){
+                            if (res.code === 200) {
                                 layer.close(dIndex);
                                 layer.msg(res.msg, {icon: 1});
                                 tableReload();
-                            } else if (res.code === 403){
-                                top.location.href = baseUrl+"/";
-                            }else {
+                            } else if (res.code === 403) {
+                                top.location.href = baseUrl + "/";
+                            } else {
                                 layer.msg(res.msg, {icon: 2});
                             }
                         }
@@ -182,17 +273,17 @@
             layer.close(i);
             var loadIndex = layer.load(2);
             $.ajax({
-                url: baseUrl+"/task/delete/auth",
+                url: baseUrl + "/task/delete/auth",
                 headers: {'token': localStorage.getItem('token')},
                 data: {ids: ids},
                 method: 'POST',
                 success: function (res) {
                     layer.close(loadIndex);
-                    if (res.code === 200){
+                    if (res.code === 200) {
                         layer.msg(res.msg, {icon: 1});
                         tableReload();
-                    } else if (res.code === 403){
-                        top.location.href = baseUrl+"/";
+                    } else if (res.code === 403) {
+                        top.location.href = baseUrl + "/";
                     } else {
                         layer.msg(res.msg, {icon: 2});
                     }
@@ -219,28 +310,151 @@
         setTimeout(function () {
             layDate.render({
                 elem: '.layui-laydate-range'
-                ,type: 'datetime'
-                ,range: true
+                , type: 'datetime'
+                , range: true
             });
 
         }, 300);
     }
+
     layDateRender();
+
+    // 鍛煎彨AGV鍔熻兘 - 鏆傛椂娉ㄩ噴鎺�
+    /*
+    // 鍒濆鍖栧懠鍙獳GV琛ㄥ崟娓叉煋
+    form.render('select');
+
+    // 鍛煎彨绫诲瀷鍒囨崲浜嬩欢
+    form.on('select(callAgvType)', function(data) {
+        var callType = data.value;
+        if (callType === 'manual') {
+            // 鎵嬪姩杈撳叆锛氭樉绀虹洰鏍囩珯鐐�
+            $('#callAgvTarSiteGroup').show();
+            $('#callAgvTarLocGroup').hide();
+            $('#callAgvTarSite').attr('placeholder', '鐩爣绔欑偣');
+        } else if (callType === 'outbound') {
+            // 鍑哄簱锛氶殣钘忕洰鏍囩珯鐐瑰拰搴撲綅锛堣嚜鍔ㄥ垎閰嶏級
+            $('#callAgvTarSiteGroup').hide();
+            $('#callAgvTarLocGroup').hide();
+        } else if (callType === 'inbound') {
+            // 鍏ュ簱锛氭樉绀虹洰鏍囧簱浣嶏紝闅愯棌鐩爣绔欑偣锛堢珯鐐硅嚜鍔ㄥ垎閰嶏級
+            $('#callAgvTarSiteGroup').hide();
+            $('#callAgvTarLocGroup').show();
+            $('#callAgvTarLoc').attr('placeholder', '鐩爣搴撲綅');
+        }
+    });
+
+    // 鍛煎彨AGV鎼繍 - 浠庨〉闈笂鏂硅〃鍗曡幏鍙栬緭鍏�
+    $('#callAgvBtn').on('click', function() {
+        var callType = $('#callAgvType').val();
+        var orgSite = $('#callAgvOrgSite').val();
+        var tarSite = $('#callAgvTarSite').val();
+        var tarLoc = $('#callAgvTarLoc').val();
+        var barcode = $('#callAgvBarcode').val();
+        
+        // 楠岃瘉蹇呭~椤�
+        if (!orgSite || orgSite.trim() === '') {
+            layer.msg('璇疯緭鍏ユ簮绔欑偣', {icon: 2});
+            $('#callAgvOrgSite').focus();
+            return;
+        }
+        if (callType === 'manual') {
+            // 鎵嬪姩杈撳叆锛氶渶瑕佺洰鏍囩珯鐐�
+            if (!tarSite || tarSite.trim() === '') {
+                layer.msg('璇疯緭鍏ョ洰鏍囩珯鐐�', {icon: 2});
+                $('#callAgvTarSite').focus();
+                return;
+            }
+        } else if (callType === 'inbound') {
+            // 鍏ュ簱锛氶渶瑕佺洰鏍囧簱浣�
+            if (!tarLoc || tarLoc.trim() === '') {
+                layer.msg('璇疯緭鍏ョ洰鏍囧簱浣�', {icon: 2});
+                $('#callAgvTarLoc').focus();
+                return;
+            }
+        }
+        if (!barcode || barcode.trim() === '') {
+            layer.msg('璇疯緭鍏ユ墭鐩樼爜', {icon: 2});
+            $('#callAgvBarcode').focus();
+            return;
+        }
+        
+        // 鏋勫缓纭淇℃伅
+        var confirmMsg = '纭鍛煎彨AGV鎼繍锛�<br/>鍛煎彨绫诲瀷锛�';
+        if (callType === 'manual') {
+            confirmMsg += '鎵嬪姩杈撳叆<br/>婧愮珯鐐癸細' + orgSite + '<br/>鐩爣绔欑偣锛�' + tarSite + '<br/>鎵樼洏鐮侊細' + barcode;
+        } else if (callType === 'outbound') {
+            confirmMsg += '璧风偣+鍑哄簱锛堢珯鐐瑰拰缂撳瓨浣嶈嚜鍔ㄥ垎閰嶏級<br/>婧愮珯鐐癸細' + orgSite + '<br/>鎵樼洏鐮侊細' + barcode;
+        } else if (callType === 'inbound') {
+            confirmMsg += '璧风偣+鍏ュ簱锛堢珯鐐硅嚜鍔ㄥ垎閰嶏級<br/>婧愮珯鐐癸細' + orgSite + '<br/>鐩爣搴撲綅锛�' + tarLoc + '<br/>鎵樼洏鐮侊細' + barcode;
+        }
+        
+        layer.confirm(confirmMsg, {
+            title: '鍛煎彨AGV纭',
+            icon: 3,
+            shadeClose: true
+        }, function(index) {
+            var loadIndex = layer.load(2);
+            var requestData = {
+                callType: callType,
+                orgSite: orgSite.trim(),
+                barcode: barcode.trim()
+            };
+            if (callType === 'manual' && tarSite) {
+                requestData.tarSite = tarSite.trim();
+            }
+            if (callType === 'inbound' && tarLoc) {
+                requestData.tarLoc = tarLoc.trim();
+            }
+            
+            $.ajax({
+                url: baseUrl + "/mobile/cache/agv/call",
+                headers: {'token': localStorage.getItem('token')},
+                data: JSON.stringify(requestData),
+                contentType: 'application/json;charset=UTF-8',
+                method: 'POST',
+                success: function(res) {
+                    layer.close(loadIndex);
+                    layer.close(index);
+                    if (res.code === 200) {
+                        layer.msg('鍛煎彨AGV鎴愬姛', {icon: 1});
+                        // 娓呯┖琛ㄥ崟
+                        $('#callAgvOrgSite').val('');
+                        $('#callAgvTarSite').val('');
+                        $('#callAgvTarLoc').val('');
+                        $('#callAgvBarcode').val('');
+                        // 鍒锋柊琛ㄦ牸
+                        tableReload();
+                    } else if (res.code === 403) {
+                        top.location.href = baseUrl + "/";
+                    } else {
+                        layer.msg(res.msg || '鍛煎彨AGV澶辫触', {icon: 2});
+                    }
+                },
+                error: function() {
+                    layer.close(loadIndex);
+                    layer.close(index);
+                    layer.msg('缃戠粶璇锋眰澶辫触', {icon: 2});
+                }
+            });
+        });
+    });
+    */
 
 });
 
 // 鍏抽棴鍔ㄤ綔
-$(document).on('click','#data-detail-close', function () {
+$(document).on('click', '#data-detail-close', function () {
     parent.layer.closeAll();
 });
 
 function tableReload(child) {
     var searchData = {};
-    $.each($('#search-box [name]').serializeArray(), function() {
+    $.each($('#search-box [name]').serializeArray(), function () {
         searchData[this.name] = this.value;
     });
     tableIns.reload({
         where: searchData,
         page: {curr: pageCurr}
-     });
+    });
 }

--
Gitblit v1.9.1