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