From 4c176e55bf38acd7408fadfc7dab90591dbf2bd0 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期一, 27 五月 2024 18:24:03 +0800
Subject: [PATCH] 添加任务暂停,恢复任务功能

---
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/SendFromaddress.cs                          |    3 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/IServices/Taskinfo/Idt_agvtaskService.cs                   |    3 
 代码管理/WMS/WMS_Client/config/buttons.js                                                      |   22 +++++
 代码管理/WMS/WMS_Server/WIDESEA_Comm/TaskEnum/AGVTaskStateEnum.cs                              |    4 +
 代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_agvtaskController.cs |   24 ++++++
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/GetStation/EmptyTrayIn.cs                           |    2 
 代码管理/WMS/WMS_Client/src/views/extension/widesea_wms/taskinfo/dt_agvtask.js                 |   64 ++++++++++++++++
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Services/Taskinfo/Partial/dt_agvtaskService.cs             |   61 ++++++++++++++
 8 files changed, 180 insertions(+), 3 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/config/buttons.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/config/buttons.js"
index ea491db..c18505c 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/config/buttons.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/config/buttons.js"
@@ -124,6 +124,28 @@
     onClick: function () {
         // this.addTask();
     }
+}, {
+    name: "浠诲姟鏆傚仠",
+    icon: 'ios-cog',
+    value: 'PauseBtn',
+    class: '',
+     plain:true,
+    type: 'danger',
+    // plain:true,
+    onClick: function () {
+        // this.addTask();
+    }
+}, {
+    name: "浠诲姟鎭㈠",
+    icon: 'ios-cog',
+    value: 'ContinueBtn',
+    class: '',
+     plain:true,
+    type: 'success',
+    // plain:true,
+    onClick: function () {
+        // this.addTask();
+    }
 }
     // , {
     //     name: "鏁版嵁缁撴瀯",
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/extension/widesea_wms/taskinfo/dt_agvtask.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/extension/widesea_wms/taskinfo/dt_agvtask.js"
index b1e61fa..41d19e3 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/extension/widesea_wms/taskinfo/dt_agvtask.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/extension/widesea_wms/taskinfo/dt_agvtask.js"
@@ -44,6 +44,70 @@
         //    name:"娣诲姞浠诲姟"
 
         // })
+        let PauseBtn = this.buttons.find(r => r.name == "浠诲姟鏆傚仠");
+        if(null!=PauseBtn){
+          PauseBtn.onClick = function (){
+            let rows = this.$refs.table.getSelected();
+            if (rows.length == 0) return this.$error("璇烽�夋嫨瑕佹殏鍋滅殑浠诲姟!");
+            let addkeys = rows.map(x => {
+                return x[this.table.key];
+            });
+            if (!addkeys || addkeys.Length == 0) return this.$error("鏈幏鍙栧埌浠诲姟!");
+            this.$confirm("鏄惁纭鏆傚仠浠诲姟锛�","鎻愮ず",{
+                        // iconClass:"el-icon-success",//el-icon-remove鑷畾涔夊浘鏍囨牱寮�
+                        confirmButtonText:"纭",//纭鎸夐挳鏂囧瓧鏇存崲
+                        cancelButtonText:"鍙栨秷",//鍙栨秷鎸夐挳鏂囧瓧鏇存崲
+                        // cancelBtn:"鍙栨秷",//鍙栨秷鎸夐挳鏂囧瓧鏇存崲
+                        showClose: true,//鏄惁鏄剧ず鍙充笂瑙掑叧闂寜閽�
+                        type: "warning",//鎻愮ず绫诲瀷 success:鎴愬姛/info:淇℃伅/warning:璀﹀憡/error:鎶ラ敊
+            }).then(()=>{
+              let params = {
+                MainData: null,
+                DetailData: null,
+                DelKeys: addkeys
+            }
+            this.http.post("/api/dt_agvtask/PauseTask", params, "姝e湪鏆傚仠....").then(x => {
+                if (!x.status) return this.$error(x.message);
+                this.$success(x.message);
+                this.refresh();
+            });
+            })
+
+          }
+        }
+
+        let ContinueBtn = this.buttons.find(r => r.name == "浠诲姟鎭㈠");
+        if(null!=ContinueBtn){
+          ContinueBtn.onClick = function (){
+            let rows = this.$refs.table.getSelected();
+            if (rows.length == 0) return this.$error("璇烽�夋嫨瑕佹仮澶嶇殑浠诲姟!");
+            let addkeys = rows.map(x => {
+                return x[this.table.key];
+            });
+            if (!addkeys || addkeys.Length == 0) return this.$error("鏈幏鍙栧埌浠诲姟!");
+            this.$confirm("鏄惁纭鎭㈠浠诲姟锛�","鎻愮ず",{
+                        // iconClass:"el-icon-success",//el-icon-remove鑷畾涔夊浘鏍囨牱寮�
+                        confirmButtonText:"纭",//纭鎸夐挳鏂囧瓧鏇存崲
+                        cancelButtonText:"鍙栨秷",//鍙栨秷鎸夐挳鏂囧瓧鏇存崲
+                        // cancelBtn:"鍙栨秷",//鍙栨秷鎸夐挳鏂囧瓧鏇存崲
+                        showClose: true,//鏄惁鏄剧ず鍙充笂瑙掑叧闂寜閽�
+                        type: "warning",//鎻愮ず绫诲瀷 success:鎴愬姛/info:淇℃伅/warning:璀﹀憡/error:鎶ラ敊
+            }).then(()=>{
+              let params = {
+                MainData: null,
+                DetailData: null,
+                DelKeys: addkeys
+            }
+            this.http.post("/api/dt_agvtask/ContinueTask", params, "姝e湪鎭㈠....").then(x => {
+                if (!x.status) return this.$error(x.message);
+                this.$success(x.message);
+                this.refresh();
+            });
+            })
+
+          }
+        }
+
         this.buttons.forEach(x => {
           if(x.value == 'Add')
           {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/TaskEnum/AGVTaskStateEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/TaskEnum/AGVTaskStateEnum.cs"
index c0b3374..6c69050 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/TaskEnum/AGVTaskStateEnum.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/TaskEnum/AGVTaskStateEnum.cs"
@@ -70,5 +70,9 @@
         /// 闃熷垪涓�
         /// </summary>
         Queue,
+        /// <summary>
+        /// 鏆傚仠
+        /// </summary>
+        Pause
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/SendFromaddress.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/SendFromaddress.cs"
index ca7e9c0..4fdd1c7 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/SendFromaddress.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/SendFromaddress.cs"
@@ -9,6 +9,7 @@
 using WIDESEA_Common;
 using WIDESEA_Core.EFDbContext;
 using WIDESEA_Entity.ToAGV;
+using WIDESEA_WCS.JobsPart.Common;
 using WIDESEA_WMS.IRepositories;
 using WIDESEA_WMS.Repositories;
 
@@ -25,12 +26,14 @@
             {
                 VOLContext Context = new VOLContext();
                 Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(Context);
+                Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context);
                 RequestFromTask requestFromTask = new RequestFromTask();
                 var agv_tasks = agvtaskRepository.Find(x => x.agv_taskstate == AGVTaskStateEnum.Queue.ToString() && x.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString() && !x.agv_fromaddress.Contains("W") && string.IsNullOrEmpty(x.agv_toaddress)).OrderByDescending(x => x.agv_grade).ThenBy(x => x.agv_createtime).ToList();
                 foreach (var agv_task in agv_tasks)
                 {
                     try
                     {
+                        EmptyTray.GetEmptyTrayStation(stationinfoRepository, agv_task);
                         requestFromTask.TASK_NO = agv_task.agv_tasknum;
                         requestFromTask.FROM_POSITION = agv_task.agv_fromaddress;
                         requestFromTask.Material = agv_task.agv_materielid;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/GetStation/EmptyTrayIn.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/GetStation/EmptyTrayIn.cs"
index d02d587..9d160c8 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/GetStation/EmptyTrayIn.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/GetStation/EmptyTrayIn.cs"
@@ -91,7 +91,7 @@
                         agv_taskstate = "Create",
                         agv_qty = EmptyStation.quantity <= quantity ? EmptyStation.quantity : quantity,
                         //agv_qty = EmptyStation.quantity - toEmptyStation.quantity,
-                        StarQuantity = EmptyStation.quantity <= quantity ? 0 : toEmptyStation.quantity,
+                        StarQuantity = EmptyStation.quantity <= quantity ? 0 : EmptyStation.quantity - quantity,
                         EndQuantity = toEmptyStation.quantity,
                         agv_tasktype = "TaskType_EmptyPallet",
                         agv_toaddress = toEmptyStation.stationCode,
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/Taskinfo/Idt_agvtaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/Taskinfo/Idt_agvtaskService.cs"
index 6c01296..84172a7 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/Taskinfo/Idt_agvtaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/Taskinfo/Idt_agvtaskService.cs"
@@ -2,11 +2,14 @@
  *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
  */
 using WIDESEA_Core.BaseProvider;
+using WIDESEA_Core.Utilities;
 using WIDESEA_Entity.DomainModels;
 
 namespace WIDESEA_WMS.IServices
 {
     public partial interface Idt_agvtaskService : IService<dt_agvtask>
     {
+        WebResponseContent ContinueTask(SaveModel saveModel);
+        WebResponseContent PauseTask(SaveModel saveModel);
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/Taskinfo/Partial/dt_agvtaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/Taskinfo/Partial/dt_agvtaskService.cs"
index 799c98a..cd823f3 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/Taskinfo/Partial/dt_agvtaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/Taskinfo/Partial/dt_agvtaskService.cs"
@@ -30,6 +30,7 @@
 using WIDESEA_WMS.Common;
 using System.Reflection.Emit;
 using System.Threading.Tasks;
+using System.Net;
 
 namespace WIDESEA_WMS.Services
 {
@@ -50,6 +51,62 @@
             //澶氱鎴蜂細鐢ㄥ埌杩檌nit浠g爜锛屽叾浠栨儏鍐靛彲浠ヤ笉鐢�
             //base.Init(dbRepository);
         }
+        /// <summary>
+        /// 浠诲姟鏆傚仠
+        /// </summary>
+        /// <param name="saveModel"></param>
+        /// <returns></returns>
+        public WebResponseContent PauseTask(SaveModel saveModel)
+        {
+            WebResponseContent response = new WebResponseContent().OK();
+
+            foreach (var Key in saveModel.DelKeys)
+            {
+                try
+                {
+                    var task = repository.Find(x => x.agv_id.ToString() == Key.ToString()).FirstOrDefault();
+                    if (task.agv_taskstate == AGVTaskStateEnum.Queue.ToString())
+                    {
+                        task.agv_taskstate = AGVTaskStateEnum.Pause.ToString();
+                        repository.Update(task, x => new { x.agv_taskstate }, true);
+                        response.OK(response.Message += $"{task.agv_tasknum}鏆傚仠鎴愬姛!");
+                    }
+                }
+                catch (Exception ex)
+                {
+                    response.Error(response.Message += ex.Message);
+                }
+            }
+            return response;
+        }
+        /// <summary>
+        /// 浠诲姟缁х画
+        /// </summary>
+        /// <param name="saveModel"></param>
+        /// <returns></returns>
+        public WebResponseContent ContinueTask(SaveModel saveModel)
+        {
+            WebResponseContent response = new WebResponseContent().OK();
+
+            foreach (var Key in saveModel.DelKeys)
+            {
+                try
+                {
+                    var task = repository.Find(x => x.agv_id.ToString() == Key.ToString()).FirstOrDefault();
+                    if (task.agv_taskstate == AGVTaskStateEnum.Pause.ToString())
+                    {
+                        task.agv_taskstate = AGVTaskStateEnum.Queue.ToString();
+                        repository.Update(task, x => new { x.agv_taskstate }, true);
+                        response.OK(response.Message += $"{task.agv_tasknum}鎭㈠鎴愬姛!");
+                    }
+                }
+                catch (Exception ex)
+                {
+                    response.Error(response.Message += ex.Message);
+                }
+            }
+            return response;
+        }
         public override WebResponseContent Del(object[] keys, bool delList = true)
         {
             #region 鎵归噺淇敼璐т綅鐘舵��
@@ -66,7 +123,7 @@
             //stationinfoRepository.UpdateRange(stations, x => new { x.location_state }, true); 
             #endregion
             VOLContext volContext = new VOLContext();
-            Idt_agvtask_htyRepository agvtask_HtyRepository=new dt_agvtask_htyRepository(volContext);
+            Idt_agvtask_htyRepository agvtask_HtyRepository = new dt_agvtask_htyRepository(volContext);
             var agvtasks = repository.Find(x => keys.Contains(x.agv_id)).ToList();
             List<dt_agvtask_hty> dt_Agvtask_Hties = new List<dt_agvtask_hty>();
             foreach (var task in agvtasks)
@@ -103,7 +160,7 @@
                 };
                 dt_Agvtask_Hties.Add(agvtask_Hty);
             }
-            agvtask_HtyRepository.AddRange(dt_Agvtask_Hties,true);
+            agvtask_HtyRepository.AddRange(dt_Agvtask_Hties, true);
             return base.Del(keys, delList);
         }
         public WebResponseContent addNgTask(MesRequestTemp requestTemp)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_agvtaskController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_agvtaskController.cs"
index e451e9f..43dc621 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_agvtaskController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_agvtaskController.cs"
@@ -13,6 +13,8 @@
 using WIDESEA_WMS.IServices;
 using WIDESEA_Core.Utilities;
 using WIDESEA_Entity.DomainModels.Mes;
+using WIDESEA_WMS.Services;
+using Microsoft.AspNetCore.Authorization;
 
 namespace WIDESEA_WMS.Controllers
 {
@@ -41,5 +43,27 @@
         {
             return _service.addNgTask(request);
         }
+
+        /// <summary>
+        /// 鏆傚仠浠诲姟
+        /// </summary>
+        /// <param name="parm"></param>
+        /// <returns></returns>
+        [HttpPost, Authorize, Route("PauseTask"), AllowAnonymous]
+        public WebResponseContent PauseTask([FromBody] SaveModel saveModel)
+        {
+            return dt_agvtaskService.Instance.PauseTask(saveModel);
+        }
+
+        /// <summary>
+        /// 缁х画浠诲姟
+        /// </summary>
+        /// <param name="parm"></param>
+        /// <returns></returns>
+        [HttpPost, Authorize, Route("ContinueTask"), AllowAnonymous]
+        public WebResponseContent ContinueTask([FromBody] SaveModel saveModel)
+        {
+            return dt_agvtaskService.Instance.ContinueTask(saveModel);
+        }
     }
 }

--
Gitblit v1.9.3