From 8bfe1168a42d4e3750a15b0c0fb0a7629d6cf91c Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 01 四月 2026 17:46:53 +0800
Subject: [PATCH] #日志清理与手动操作权限

---
 src/main/webapp/static/js/wrkMast/wrkMast.js |  112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 108 insertions(+), 4 deletions(-)

diff --git a/src/main/webapp/static/js/wrkMast/wrkMast.js b/src/main/webapp/static/js/wrkMast/wrkMast.js
index daa4b2b..a2811c7 100644
--- a/src/main/webapp/static/js/wrkMast/wrkMast.js
+++ b/src/main/webapp/static/js/wrkMast/wrkMast.js
@@ -17,18 +17,26 @@
         { key: "dualCrnNo", prop: "dualCrnNo", label: "鍙屽伐浣嶅爢鍨涙満", minWidth: 120, sortable: true, align: "center" },
         { key: "batch", prop: "batch", label: "鎵规", minWidth: 120, sortable: true },
         { key: "batchSeq", prop: "batchSeq", label: "鎵规搴忓垪", width: 100, sortable: true, align: "center" },
-        { key: "systemMsg", prop: "systemMsg", label: "绯荤粺娑堟伅", minWidth: 220, sortable: false, showOverflow: false }
+        { key: "sendFailCount", prop: "sendFailCount", label: "澶辫触娆℃暟", width: 96, sortable: true, align: "center" },
+        { key: "errorTime$", prop: "errorTime$", label: "澶辫触鏃堕棿", minWidth: 168, sortable: true },
+        { key: "errorMemo", prop: "errorMemo", label: "澶辫触鍘熷洜", minWidth: 220, sortable: false, showOverflow: false },
+        { key: "systemMsg", prop: "systemMsg", label: "绯荤粺娑堟伅", minWidth: 320, sortable: false, showOverflow: false }
     ];
+
+    var MANUAL_ROLLBACK_STATUSES = [6, 106, 506];
 
     function cloneSearchForm() {
         return {
             condition: "",
             wrk_no: "",
             wms_wrk_no: "",
+            io_type: "",
+            wrk_sts: "",
             loc_no: "",
             source_loc_no: "",
             crn_no: "",
-            dual_crn_no: ""
+            dual_crn_no: "",
+            barcode: ""
         };
     }
 
@@ -65,6 +73,10 @@
                 pageTotal: 0,
                 tableHeight: 520,
                 searchForm: cloneSearchForm(),
+                filterOptions: {
+                    ioTypes: [],
+                    wrkStatuses: []
+                },
                 sortState: {
                     prop: "",
                     order: ""
@@ -86,6 +98,7 @@
             }
         },
         created: function () {
+            this.loadFilterOptions();
             this.loadList();
         },
         mounted: function () {
@@ -100,6 +113,55 @@
             }
         },
         methods: {
+            loadFilterOptions: function () {
+                var vm = this;
+                [
+                    {
+                        field: "wrkStatuses",
+                        url: baseUrl + "/basWrkStatus/list/auth",
+                        valueField: "wrkSts",
+                        labelField: "wrkDesc"
+                    },
+                    {
+                        field: "ioTypes",
+                        url: baseUrl + "/basWrkIotype/list/auth",
+                        valueField: "ioType",
+                        labelField: "ioDesc"
+                    }
+                ].forEach(function (config) {
+                    $.ajax({
+                        url: config.url,
+                        headers: { token: localStorage.getItem("token") },
+                        method: "GET",
+                        data: {
+                            curr: 1,
+                            limit: 200
+                        },
+                        success: function (res) {
+                            if (res.code === 200) {
+                                vm.$set(vm.filterOptions, config.field, ((res.data && res.data.records) || []).map(function (item) {
+                                    return {
+                                        value: item[config.valueField],
+                                        label: item[config.labelField]
+                                    };
+                                }));
+                                return;
+                            }
+                            if (res.code === 403) {
+                                top.location.href = baseUrl + "/";
+                            }
+                        }
+                    });
+                });
+            },
+            displayCellValue: function (row, column) {
+                var value;
+                if (!row || !column) {
+                    return "";
+                }
+                value = row[column.prop];
+                return value === null || value === undefined || value === "" ? "" : value;
+            },
             buildQueryParams: function () {
                 var data = {
                     curr: this.currentPage,
@@ -229,7 +291,14 @@
                 }
                 if (command === "cancel") {
                     this.cancelTask(row);
+                    return;
                 }
+                if (command === "manualRollback") {
+                    this.manualRollbackTask(row);
+                }
+            },
+            canManualRollback: function (row) {
+                return !!row && MANUAL_ROLLBACK_STATUSES.indexOf(Number(row.wrkSts)) > -1;
             },
             completeTask: function (row) {
                 var vm = this;
@@ -239,7 +308,7 @@
                     cancelButtonText: "鍙栨秷"
                 }).then(function () {
                     $.ajax({
-                        url: baseUrl + "/openapi/completeTask",
+                        url: baseUrl + "/wrkMast/complete/auth",
                         contentType: "application/json",
                         headers: { token: localStorage.getItem("token") },
                         data: JSON.stringify({ wrkNo: row.wrkNo }),
@@ -270,7 +339,7 @@
                     cancelButtonText: "鍙栨秷"
                 }).then(function () {
                     $.ajax({
-                        url: baseUrl + "/openapi/cancelTask",
+                        url: baseUrl + "/wrkMast/cancel/auth",
                         contentType: "application/json",
                         headers: { token: localStorage.getItem("token") },
                         data: JSON.stringify({ wrkNo: row.wrkNo }),
@@ -293,6 +362,41 @@
                     });
                 }).catch(function () {});
             },
+            manualRollbackTask: function (row) {
+                var vm = this;
+                if (!vm.canManualRollback(row)) {
+                    vm.$message.warning("褰撳墠浠诲姟涓嶅浜庡緟浜哄伐鍥炴粴鐘舵��");
+                    return;
+                }
+                vm.$confirm("纭畾鎵嬪姩鍥炴粴璇ヤ换鍔″悧锛熷洖婊氬悗浠诲姟浼氭仮澶嶄负寰呮墽琛岀姸鎬併��", "鎻愮ず", {
+                    type: "warning",
+                    confirmButtonText: "纭畾",
+                    cancelButtonText: "鍙栨秷"
+                }).then(function () {
+                    $.ajax({
+                        url: baseUrl + "/openapi/manualRollbackTask",
+                        contentType: "application/json",
+                        headers: { token: localStorage.getItem("token") },
+                        data: JSON.stringify({ wrkNo: row.wrkNo }),
+                        method: "POST",
+                        success: function (res) {
+                            if (res.code === 200) {
+                                vm.$message.success("浜哄伐鍥炴粴鎴愬姛");
+                                vm.loadList();
+                                return;
+                            }
+                            if (res.code === 403) {
+                                top.location.href = baseUrl + "/";
+                                return;
+                            }
+                            vm.$message.error(res.msg || "浜哄伐鍥炴粴澶辫触");
+                        },
+                        error: function () {
+                            vm.$message.error("浜哄伐鍥炴粴澶辫触");
+                        }
+                    });
+                }).catch(function () {});
+            },
             updateTableHeight: function () {
                 var viewport = window.innerHeight || document.documentElement.clientHeight || 860;
                 this.tableHeight = Math.max(340, viewport - (this.advancedVisible ? 276 : 222));

--
Gitblit v1.9.1