From 3b87f36219202b4cec47840bd9f56fdbe53e7d04 Mon Sep 17 00:00:00 2001 From: DESKTOP-9BNTV8O <DESKTOP-9BNTV8O@163.com> Date: 星期二, 11 三月 2025 20:49:17 +0800 Subject: [PATCH] 初版提交 --- Admin.NET/WCS.Application/Service/WcsCheckTask/WcsCheckTaskService.cs | 48 ++++++++++++++++++++++++++++++++++++------------ 1 files changed, 36 insertions(+), 12 deletions(-) diff --git a/Admin.NET/WCS.Application/Service/WcsCheckTask/WcsCheckTaskService.cs b/Admin.NET/WCS.Application/Service/WcsCheckTask/WcsCheckTaskService.cs index 2033a79..6b47abb 100644 --- a/Admin.NET/WCS.Application/Service/WcsCheckTask/WcsCheckTaskService.cs +++ b/Admin.NET/WCS.Application/Service/WcsCheckTask/WcsCheckTaskService.cs @@ -8,6 +8,7 @@ using AngleSharp.Dom; using DocumentFormat.OpenXml.Vml.Office; using Elastic.Clients.Elasticsearch.Tasks; +using IoTClient; using Microsoft.AspNetCore.Http; using WCS.Application.Entity; namespace WCS.Application; @@ -162,22 +163,25 @@ { throw Oops.Oh("璁惧宸ヤ綅淇℃伅涓嶅瓨鍦�"); } + //浠诲姟淇℃伅 var taskInfo = await _wcsOderTaskRep.GetByIdAsync(input.oderTaskId); if (taskInfo == null) { throw Oops.Oh("浠诲姟淇℃伅涓嶅瓨鍦�"); } - if (taskInfo.Status > TaskStatusEnum.Doing) + if (taskInfo.Status != TaskStatusEnum.Wait) { throw Oops.Oh("浠诲姟鐘舵�佸紓甯�"); } + taskInfo.Status = TaskStatusEnum.Doing;//姝e湪鎵ц + //鐗╂枡鍝佺淇℃伅 var skuInfo = await _wcsMateialPzInfoRep.Context.Queryable<WcsMateialPzInfo>().Where(w => w.SkuNo == taskInfo.SkuNo).FirstAsync(); if (skuInfo == null) { throw Oops.Oh("鐗╂枡鍝佺淇℃伅涓嶅瓨鍦�"); } - //鍒嗘嫞浠诲姟淇℃伅 + //鐮佸灈缁戝畾淇℃伅 var checkTaskInfo = await _wcsCheckTaskRep.Context.Queryable<WcsCheckTask>().Where(w => w.Port == deviceInfo.StationNum).FirstAsync(); if (checkTaskInfo == null) { @@ -194,9 +198,9 @@ checkTaskInfo.BoxType = taskInfo.BoxType; checkTaskInfo.Qty = taskInfo.Qty; checkTaskInfo.Status = "1";//宸茬粦瀹� - checkTaskInfo.PZNo = skuInfo.PZNo; + checkTaskInfo.PZNo = skuInfo.PZNo; - #region#缁橮LC鍐欏叆鎶撶鍝佺鍙� + #region#缁橮LC鍐欏叆鎶撶鍝佺鍙枫�佹壒娆″彿銆侀�氶亾鐘舵�� var modPlc = await _wcsDeviceRep.Context.Queryable<WcsPlc>().FirstAsync(s => s.Id == deviceInfo.PlcId); if (modPlc == null) { @@ -205,11 +209,17 @@ PLCUtil modUtil = new PLCUtil(modPlc); if (modUtil.Connected) { - var ret = modUtil.SetPlcDBValue(checkTaskInfo.PosType, checkTaskInfo.DbNumber, checkTaskInfo.PlcPos, checkTaskInfo.PZNo); - if (ret.IsSucceed) + var listResult = new List<Result>(); + listResult.Add(modUtil.SetPlcDBValue(checkTaskInfo.PosType, checkTaskInfo.DbNumber, checkTaskInfo.PlcPos, checkTaskInfo.PZNo));//鍝佺鍙� + listResult.Add(modUtil.SetPlcDBValue(checkTaskInfo.PosTypeLot, checkTaskInfo.DbNumber, checkTaskInfo.PosLot, checkTaskInfo.LotNo));//鎵规鍙� + listResult.Add(modUtil.SetPlcDBValue(checkTaskInfo.PosTypeStatus, checkTaskInfo.DbNumber, checkTaskInfo.PosStatus, "1"));//缁戝畾鐘舵�� 0锛氭湭缁戝畾 1锛氬凡缁戝畾 + if (listResult.All(s => s.IsSucceed)) { - //鍐欏叆娴佺▼瀛楁垚鍔熷悗鏇存柊鍒嗘嫞浠诲姟 + //鍐欏叆娴佺▼瀛楁垚鍔熷悗鏇存柊鐮佸灈缁戝畾淇℃伅 await _wcsCheckTaskRep.AsUpdateable(checkTaskInfo).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); + + //鍐欏叆娴佺▼瀛楁垚鍔熷悗鏇存柊浠诲姟鐘舵�� + await _wcsOderTaskRep.AsUpdateable(taskInfo).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); } else { @@ -233,16 +243,24 @@ [DisplayName("浠诲姟缁撴壒")] public async Task CloseTaskForPLC(CloseTaskPLCInput input) { - //鍒嗘嫞浠诲姟淇℃伅 + //缁戝畾淇℃伅 var checkTaskList = _wcsCheckTaskRep.Context.Queryable<WcsCheckTask>().Where(w => w.LotNo == input.lotNo && w.Status == "1").ToList(); if (checkTaskList.Count <= 0) { throw Oops.Bah("鎵句笉鍒拌鎵规鍒嗘嫞浠诲姟淇℃伅"); } + //浠诲姟淇℃伅 + var taskInfo = _wcsOderTaskRep.Context.Queryable<WcsOderTask>().First(w => w.OrderNo == checkTaskList[0].OrderNo); + if (taskInfo != null) + { + taskInfo.Status = TaskStatusEnum.Complete;//宸茬粨鏉� + //鏇存柊浠诲姟鐘舵�� + await _wcsOderTaskRep.AsUpdateable(taskInfo).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); + } foreach (var item in checkTaskList) { #region#缁橮LC鍐欏叆缁撴壒鎵规鍙� - var deviceInfo = await _wcsDeviceRep.Context.Queryable<WcsDevice>().FirstAsync(w => w.StationNum == item.Port); + var deviceInfo = await _wcsDeviceRep.Context.Queryable<WcsDevice>().FirstAsync(w => w.StationNum == item.Port && w.DeviceType== DeviceTypeEnum.Show); if (deviceInfo == null) { throw Oops.Bah($"鎵句笉鍒板伐浣嶅彿锛歿item.Port} 鐨勭爜鍨涘伐浣嶄俊鎭�"); @@ -250,13 +268,17 @@ var modPlc = await _wcsDeviceRep.Context.Queryable<WcsPlc>().FirstAsync(s => s.Id == deviceInfo.PlcId); if (modPlc == null) { - throw Oops.Bah($"鎵句笉鍒板伐浣嶅彿锛歿item.Port} 鐨勮澶囦俊鎭�"); + throw Oops.Bah($"鎵句笉鍒癙LC淇℃伅"); } PLCUtil modUtil = new PLCUtil(modPlc); if (modUtil.Connected) { - var ret = modUtil.SetPlcDBValue(item.PosTypeLot, item.DbNumber, item.PosLot, "1"); - if (ret.IsSucceed) + var listResult = new List<Result>(); + listResult.Add(modUtil.SetPlcDBValue(item.PosType, item.DbNumber, item.PlcPos, "0"));//鍝佺鍙� + listResult.Add(modUtil.SetPlcDBValue(item.PosTypeLot, item.DbNumber, item.PosLot, ""));//鎵规鍙� + listResult.Add(modUtil.SetPlcDBValue(item.PosTypeStatus, item.DbNumber, item.PosStatus, "0"));//缁戝畾鐘舵�� 0锛氭湭缁戝畾 1锛氬凡缁戝畾 + + if (listResult.All(s => s.IsSucceed)) { //鍐欏叆娴佺▼瀛楁垚鍔熷悗鏇存柊鍒嗘嫞浠诲姟 item.OrderNo = ""; @@ -266,7 +288,9 @@ item.SkuName = ""; item.BoxType = ""; item.Qty = 0; + item.BoxCount = 0; item.PZNo = ""; + //item.PalletNo = ""; item.Status = "0";//鏈粦瀹� //鏇存柊鍒嗘嫞浠诲姟 -- Gitblit v1.8.0