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