From d239f2cccb5b84d52c8c202557ea8e75cc6ab984 Mon Sep 17 00:00:00 2001 From: wxw <Administrator@DESKTOP-5BIMHQ3> Date: 星期六, 14 九月 2024 16:51:17 +0800 Subject: [PATCH] 任务管理新增功能增加分配拆垛工位功能;调整分拣码垛页面,更改拆垛机器人属性 --- Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs | 80 +++++++++++++++++++++++++--------------- 1 files changed, 50 insertions(+), 30 deletions(-) diff --git a/Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs b/Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs index 3f2e706..736bb52 100644 --- a/Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs +++ b/Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs @@ -1,9 +1,11 @@ 锘� using AngleSharp.Dom; +using COSXML.Network; using Elastic.Clients.Elasticsearch.Tasks; using Furion.DatabaseAccessor; using Microsoft.AspNetCore.SignalR; using WCS.Application.Entity; +using WCS.Application.Service.WcsTask.Dto; namespace WCS.Application; @@ -44,6 +46,8 @@ .WhereIF(!string.IsNullOrWhiteSpace(input.TaskNo), u => u.TaskNo.Contains(input.TaskNo.Trim())) .WhereIF(input.TaskType.HasValue, u => u.TaskType == input.TaskType) .WhereIF(input.Status.HasValue, u => u.Status == input.Status) + .WhereIF(!string.IsNullOrWhiteSpace(input.PalletNo), u => u.PalletNo.Contains(input.PalletNo.Trim())) + .WhereIF(!string.IsNullOrWhiteSpace(input.Origin), u => u.Origin.Contains(input.Origin.Trim())) .Select<WcsTaskOutput>(); return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize); } @@ -71,38 +75,25 @@ } var entity = input.Adapt<WcsTask>(); entity.Origin = "WCS"; - await _wcsTaskRep.InsertAsync(entity); - #region 缁戝畾鍨涙満 - - //鐗╂枡鍝佺淇℃伅 - var skuInfo = await _wcsMateialPzInfoRep.Context.Queryable<WcsMateialPzInfo>().Where(w => w.SkuNo == input.SkuNo).FirstAsync(); - if (skuInfo == null) - { - throw Oops.Oh("鐗╂枡鍝佺淇℃伅涓嶅瓨鍦�"); - } + #region 鍒嗛厤鎷嗗灈宸ヤ綅 //鍒嗘嫞浠诲姟淇℃伅 - var checkTaskInfo = await _wcsCheckTaskRep.Context.Queryable<WcsCheckTask>().Where(w => w.Status == "0" && w.RoboatType == "0").OrderBy(o => o.LineNo).FirstAsync(); - if (checkTaskInfo == null) + List<TaskPortDto> taskPortList = await _wcsCheckTaskRep.Context.Queryable<WcsCheckTask>().Where(w => w.RoboatType == PLCTypeEnum.StackingRobot).Select<TaskPortDto>().ToListAsync(); + if (taskPortList.Count<=0) { - throw Oops.Oh("鍒嗘嫞浠诲姟淇℃伅涓嶅瓨鍦�"); + throw Oops.Bah("鎷嗗灈宸ヤ綅寮傚父"); } - if (checkTaskInfo.Status != "0") - { - throw Oops.Oh("璇ュ伐浣嶅凡缁戝畾浠诲姟锛岃鍕垮啀娆$粦瀹�"); + var taskList = await _wcsTaskRep.Context.Queryable<WcsTask>().Where(w => w.Status == 0 && w.IsBind == 0 && w.TaskType == TaskTypeEnum.Out).ToListAsync(); + foreach (var item in taskPortList) + { + item.PortCount= taskList.Where(w=>w.StationNum==item.Port).Count(); } - checkTaskInfo.OrderNo = ""; - checkTaskInfo.TaskNo = entity.TaskNo; - checkTaskInfo.LotNo = entity.LotNo; - checkTaskInfo.SkuNo = entity.SkuNo; - checkTaskInfo.SkuName = entity.SkuName; - checkTaskInfo.BoxType = ""; - checkTaskInfo.Qty = entity.Qty; - checkTaskInfo.Status = "1";//宸茬粦瀹� - checkTaskInfo.PZNo = skuInfo.PZNo; - //鏇存柊鍒嗘嫞浠诲姟 - await _wcsCheckTaskRep.AsUpdateable(checkTaskInfo).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); + var portInfo = taskPortList.OrderBy(o => o.PortCount).ThenBy(o => o.LineNO).First(); + //鎷嗗灈宸ヤ綅鍙� + entity.StationNum = portInfo.Port; #endregion + + await _wcsTaskRep.InsertAsync(entity); return entity.Id; } @@ -179,12 +170,17 @@ if (modTask.Status > TaskStatusEnum.Doing) throw Oops.Oh("浠诲姟鐘舵�佸紓甯�"); if (input.Status == TaskStatusEnum.Complete) + { modTask.IsSuccess = TaskSuccessEnum.Success; + modTask.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿 + } else + { modTask.IsSuccess = TaskSuccessEnum.Fail; - modTask.FinishDate = DateTime.Now; + modTask.CancelDate = DateTime.Now;//鍙栨秷鏃堕棿 + } modTask.Status = input.Status; - await _wcsTaskRep.Context.Updateable(modTask).UpdateColumns(s => new { s.Status, s.IsSuccess, s.FinishDate, s.UpdateTime,s.UpdateUserId,s.UpdateUserName }).ExecuteCommandAsync(); + await _wcsTaskRep.Context.Updateable(modTask).UpdateColumns(s => new { s.Status, s.IsSuccess, s.FinishDate, s.CancelDate, s.UpdateTime, s.UpdateUserId, s.UpdateUserName }).ExecuteCommandAsync(); //鍐欏叆浠诲姟鏄庣粏琛� WcsTaskMonitor modTaskMonitor = new WcsTaskMonitor() { @@ -226,6 +222,30 @@ } } - - + public async Task UploadTask(UpdateWcsTaskInput input) + { + var modTask = await _wcsTaskRep.GetByIdAsync(input.Id); + if (modTask.Status != TaskStatusEnum.Complete) + { + throw Oops.Oh("浠诲姟鐘舵�佸紓甯�"); + } + if (modTask.Origin != "WMS") + { + throw Oops.Oh("璇ヤ换鍔℃潵婧愪笉鏄疻MS"); + } + // 鍙嶉WMS + //var requestMode = new TaskRequest() + //{ + // TaskNo = modTask.TaskNo, + // PalletNo = modTask.PalletNo, + // TaskType = (TaskTypeEnum)modTask.TaskType,//TaskTypeEnum.In, + // TaskStatus = TaskStatusEnum.Complete + //}; + //HttpService httpService = new HttpService(); + //var modResponseTask = httpService.RequestTask(requestMode).Result; + //if (modResponseTask.StatusCode == "0") + //{ + // modcTaskMonitor.InteractiveMsg = "浠诲姟瀹屾垚锛岃繑鍥炵粰WMS浠诲姟瀹屾垚"; + //} + } } -- Gitblit v1.8.0