From cff60cb1cccf70fe33ed9c951c46143fe41fc43a Mon Sep 17 00:00:00 2001
From: IPC-610 <IPC-610@DESKTOP-6LEOOS3>
Date: 星期四, 26 九月 2024 19:09:52 +0800
Subject: [PATCH] 设备呼叫空托跺

---
 Admin.NET/WCS.Application/PLC/PLCService.cs |   79 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 77 insertions(+), 2 deletions(-)

diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index c9b3ec2..e0ef176 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -1345,20 +1345,95 @@
 
             #endregion
 
+            #region 鍙┖鎵樼洏璺�
             case "50":
                 // plc鐢宠绌烘墭
                 {
                     // 璋冪敤WMS绌烘墭鍑哄簱鎺ュ彛锛岃繑鍥炲嚭搴撲换鍔″瓨鍏ュ嚭搴撹〃
-
-                    // 鍐欏叆
+                    var strMsg = "";
+                    var http = new HttpService();
+                    strMsg = http.IssuePlnOutHouseWcs("1", "205");
+                    if (!strMsg.Contains("-1"))
+                    {
+                        // 鍐欏叆plc娴佺▼瀛�60
+                        var ret = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "60");
+                    }
+                    else
+                    {
+                        // 鐢宠宸烽亾澶辫触锛丩ED鏄剧ず
+                        Log.Error(string.Format($"宸ヤ綅鍙凤細{modDevice.StationNum}鐢宠绌烘墭璺哄け璐�:{strMsg};"));
+                    }                    
                 }
                 break;
             case "80":
                 // 绌烘墭鐩樿泛宸插埌浣�
                 {
+                    // 璋冪敤wms浠诲姟鍑哄簱浠诲姟瀹屾垚
+                    // 鑾峰彇璺烘満鐐逛綅閰嶇疆
+                    var modPosTask = modDevice.listStation.FirstOrDefault(m => m.Text == "浠诲姟鍙�");
+                    var (res, val) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosTask.PlcPos);
+                    // 鏍规嵁浠诲姟鍙疯幏鍙栦换鍔′俊鎭�
+                    if (res.IsSucceed)
+                    {
+                        string tasknoVal = val.ToString();
+                        var modTask = _db.Queryable<WcsTask>().First(m => m.Status == TaskStatusEnum.Doing && m.TaskNo == tasknoVal && m.IsDelete == false);
+                        if (modTask == null)
+                        {
+                            Log.Error(string.Format($"宸ヤ綅鍙凤細{modDevice.StationNum}绌烘墭鐩樺埌杈撅紝鏈壘鍒板搴旂殑浠诲姟!浠诲姟鍙穥tasknoVal};"));
+                            break;
+                        }
+                        // 鍐欏叆plc娴佺▼瀛�90
+                        var ret = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "90");
+                        if (ret.IsSucceed)
+                        {
+                            // 鏀瑰彉浠诲姟鐘舵��
+                            modTask.Status = TaskStatusEnum.Complete;
+                            modTask.FinishDate = DateTime.Now;
+                            _db.Updateable(modTask).ExecuteCommand();
 
+                            HubUtil.PublicTask(modTask.Adapt<WcsTaskOutput>());
+                            var modTaskMonitor = new WcsTaskMonitor()
+                            {
+                                TaskNo = modTask.TaskNo,
+                                PlcId = modDevice.Id,
+                                PlcName = modDevice.Text,
+                                PalletNo = modTask.PalletNo,
+                                Status = TaskStatusEnum.Complete,
+                                StartLocat = modTask.StartLocate,
+                                EndLocat = modTask.EndLocate,
+                                InteractiveMsg = $"浠诲姟瀹屾垚"
+                            };
+                            if (modTask.Origin == "WMS")
+                            {
+                                // 鍙嶉WMS
+                                var requestMode = new TaskRequestWMS()
+                                {
+                                    TaskNo = modTask.TaskNo,
+                                    PalletNo = modTask.PalletNo,
+                                    TaskType = ((int)TaskTypeEnum.Out).ToString(),
+                                    TaskStatus = ((int)TaskStatusEnum.Complete).ToString()
+                                };
+                                HttpService httpService = new HttpService();
+                                var modResponseTask = httpService.RequestTask(requestMode).Result;
+                                if (modResponseTask.StatusCode == 0)
+                                {
+                                    modTaskMonitor.InteractiveMsg = "浠诲姟瀹屾垚锛岃繑鍥炵粰WMS浠诲姟瀹屾垚";
+                                }
+                                else
+                                {
+                                    Log.Error(string.Format("浠诲姟鍙嶉澶辫触锛歋tatusCode锛歿0};Msg锛歿1}", modResponseTask.StatusCode, modResponseTask.Msg));
+                                }
+                            }
+                            // 鎻掑叆浜や簰鏃ュ織
+                            _db.Insertable(modTaskMonitor).ExecuteCommand();
+                            //涓嬪彂浠诲姟鏃ュ織
+                            HubUtil.PublicTaskMonitor(modTaskMonitor.Adapt<WcsTaskMonitorOutput>());
+                        }
+                    }                    
                 }
                 break;
+            #endregion
+
             default: break;
         }
 

--
Gitblit v1.8.0