From 842a51346f380eb8f6b69efb4223cf953d366e80 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期五, 13 九月 2024 16:11:31 +0800
Subject: [PATCH] Merge branch 'master' into wxw

---
 Admin.NET/WCS.Application/Entity/WcsPlc.cs                      |    6 
 Admin.NET/WCS.Application/Util/HttpService.cs                   |  189 ++++----------------------
 Web/src/views/wcs/wcsPlc/index.vue                              |   14 ++
 Admin.NET/WCS.Application/PLC/PLCUtil.cs                        |    2 
 Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs       |    3 
 Admin.NET/WCS.Application/Hub/PlcDeviceHub.cs                   |    5 
 Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcInput.cs     |   13 +
 Web/src/views/wcs/wcsPlc/component/editDialog.vue               |   12 +
 Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcDto.cs       |    4 
 Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcOutput.cs    |    5 
 Admin.NET/WCS.Application/PLC/PLCService.cs                     |   18 +-
 Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs |   44 ++++--
 Admin.NET/WCS.Application/PLC/PLCCommon.cs                      |   21 ++
 Admin.NET/WCS.Application/PLC/PLCTaskAction.cs                  |    5 
 Admin.NET/WCS.Application/Model/TaskRequest.cs                  |   54 +++++++
 15 files changed, 198 insertions(+), 197 deletions(-)

diff --git a/Admin.NET/WCS.Application/Entity/WcsPlc.cs b/Admin.NET/WCS.Application/Entity/WcsPlc.cs
index c50e7dd..916fa20 100644
--- a/Admin.NET/WCS.Application/Entity/WcsPlc.cs
+++ b/Admin.NET/WCS.Application/Entity/WcsPlc.cs
@@ -49,6 +49,12 @@
     public string? Text { get; set; }
 
     /// <summary>
+    /// 鏄惁鍚敤
+    /// </summary>
+    [SugarColumn(ColumnName = "Enable", ColumnDescription = "鏄惁鍚敤")]
+    public YesNoEnum Enable { get; set; }
+
+    /// <summary>
     /// 鏄惁杩炴帴
     /// </summary>
     [SugarColumn(IsIgnore = true)]
diff --git a/Admin.NET/WCS.Application/Hub/PlcDeviceHub.cs b/Admin.NET/WCS.Application/Hub/PlcDeviceHub.cs
index 988502b..3fc4f27 100644
--- a/Admin.NET/WCS.Application/Hub/PlcDeviceHub.cs
+++ b/Admin.NET/WCS.Application/Hub/PlcDeviceHub.cs
@@ -71,7 +71,7 @@
             // 鐢ㄤ簬淇濆瓨姣忎釜璁惧鐨勫垵濮嬬姸鎬�
             var initialStates = new Dictionary<long, WcsDeviceOutput>();
 
-            var listPlc = _db.Queryable<WcsPlc>().Where(s => s.Type == PLCTypeEnum.StackingMachine || s.Type == PLCTypeEnum.ConveyorLine).ToList();
+            var listPlc = _db.Queryable<WcsPlc>().Where(s => s.Type == PLCTypeEnum.StackingMachine || s.Type == PLCTypeEnum.ConveyorLine).Where(s => s.Enable == YesNoEnum.Y).ToList();
             var listPlcId = listPlc.Select(s => s.Id).ToList();
             var listPlcDevice = _db.Queryable<WcsDevice>().Where(s => s.DeviceType == DeviceTypeEnum.Business && listPlcId.Contains(s.PlcId)).Select<WcsDeviceOutput>().ToList();
             var listPlcDeviceId = listPlcDevice.Select(s => s.Id).ToList();
@@ -142,7 +142,6 @@
                             {
                                 (result, var palletNo) = modConn.GetPlcDBValue(modPositionPalletNo.PosType, modDevice.DbNumber, modPositionPalletNo.PlcPos, modPositionPalletNo.StringLength);
                                 modDevice.PalletNo = Convert.ToString(palletNo);
-                                Console.WriteLine(modDevice.DbNumber + "." + modPositionPalletNo.PlcPos + "----------");
                             }
                             if (modPlc.Type == PLCTypeEnum.ConveyorLine)
                             {
@@ -204,7 +203,7 @@
                         if (initialStates.TryGetValue(modDevice.Id, out var initialState))
                         {
                             if (modDevice.Status != initialState.Status ||
-                                modDevice.Plc != initialState.Plc ||
+                                (!modDevice.Plc.IsNullOrEmpty() && modDevice.Plc != initialState.Plc) ||
                                 modDevice.Wcs != initialState.Wcs ||
                                 modDevice.TaskNo != initialState.TaskNo ||
                                 modDevice.TaskType != initialState.TaskType ||
diff --git a/Admin.NET/WCS.Application/Model/TaskRequest.cs b/Admin.NET/WCS.Application/Model/TaskRequest.cs
index 7587e00..1ae0b35 100644
--- a/Admin.NET/WCS.Application/Model/TaskRequest.cs
+++ b/Admin.NET/WCS.Application/Model/TaskRequest.cs
@@ -10,12 +10,62 @@
 public class ResponseTasks
 {
     public string StatusCode { get; set; }
-    public string Success { get; set; }
+    public int Success { get; set; }
 
     public string Message { get; set; }
 
-    public WcsTask TaskList { get; set; }
+    public ResponseTasksModel TaskList { get; set; }
 }
+
+public class ResponseTasksModel
+{
+    /// <summary>
+    /// 浠诲姟鍙�
+    /// </summary>
+    public string TaskNo { get; set; }
+
+    /// <summary>
+    /// 浠诲姟绫诲瀷
+    /// </summary>
+    public string TaskType { get; set; }
+
+    /// <summary>
+    /// 鎵樼洏鍙�
+    /// </summary>
+    public string PalletNo { get; set; }
+
+    /// <summary>
+    /// 璧峰浣嶇疆
+    /// </summary>
+    public string StartLocate { get; set; }
+
+    /// <summary>
+    /// 璧峰宸烽亾
+    /// </summary>
+    public string StartRoadway { get; set; }
+
+    /// <summary>
+    /// 缁撴潫浣嶇疆
+    /// </summary>
+    public string EndLocate { get; set; }
+
+    /// <summary>
+    /// 鐩爣宸烽亾
+    /// </summary>
+    public string EndRoadway { get; set; }
+
+    /// <summary>
+    /// 鍑哄簱鍙�
+    /// </summary>
+    public string OutMode { get; set; }
+
+    /// <summary>
+    /// 椤哄簭-浼樺厛绾�
+    /// </summary>
+    public int Order { get; set; }
+
+}
+
 /// <summary>
 /// 鐢宠鍏ュ簱浠诲姟  宸烽亾鎴栧偍浣�
 /// </summary>
diff --git a/Admin.NET/WCS.Application/PLC/PLCCommon.cs b/Admin.NET/WCS.Application/PLC/PLCCommon.cs
index 8b64865..7407266 100644
--- a/Admin.NET/WCS.Application/PLC/PLCCommon.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCCommon.cs
@@ -552,19 +552,28 @@
     public static string GetRoadwayByStationNew(string StationNum)
     {
         string value = "";
-        var conveyList1 = new List<string>() { "147", "145", "139", "137", "129", "127", "121", "119", "111", "109", "103", "101", "093", "091", "085", "083", "075", "073", "067", "065" };
-        var conveyList2 = new List<string>() { "252", "254", "260", "262", "272", "270", "278", "280", "288", "290", "294", "301", "307", "309", "315", "317", "325", "327", "331", "337" };
-        var conveyList3 = new List<string>() { "401", "402", "405", "406", "409", "410", "413", "414", "417", "418", "421", "422", "425", "426", "429", "430", "433", "434", "437", "438" };
+        //var conveyList1 = new List<string>() { "147", "145", "139", "137", "129", "127", "121", "119", "111", "109", "103", "101", "093", "091", "085", "083", "075", "073", "067", "065" };
+        //var conveyList2 = new List<string>() { "252", "254", "260", "262", "272", "270", "278", "280", "288", "290", "294", "301", "307", "309", "315", "317", "325", "327", "331", "337" };
+        //var conveyList3 = new List<string>() { "401", "402", "405", "406", "409", "410", "413", "414", "417", "418", "421", "422", "425", "426", "429", "430", "433", "434", "437", "438" };
 
-        if (conveyList1.Contains(StationNum))
+        var ipInfo = _db.Queryable<WcsPlc>().Where(s => s.Type == PLCTypeEnum.StackingMachine || s.Type == PLCTypeEnum.ConveyorLine || s.Type == PLCTypeEnum.BoxConveyorLine);
+        var ip1 = ipInfo.First(m=>m.Text == "1灞傛墭鐩樿緭閫佺嚎");
+        var ip2 = ipInfo.First(m=>m.Text == "2灞傛墭鐩樿緭閫佺嚎");
+        var ip3 = ipInfo.First(m=>m.Text == "3灞傛墭鐩樿緭閫佺嚎");
+        
+        var dev1 = PLCTaskAction.plcDevices.Where(m => m.IsDelete == false && m.PlcId == ip1.Id).Select(m=>m.StationNum).ToList();
+        var dev2 = PLCTaskAction.plcDevices.Where(m => m.IsDelete == false && m.PlcId == ip2.Id).Select(m => m.StationNum).ToList();
+        var dev3 = PLCTaskAction.plcDevices.Where(m => m.IsDelete == false && m.PlcId == ip3.Id).Select(m => m.StationNum).ToList();
+
+        if (dev1.Contains(StationNum))
         {
             value = "1";
         }
-        else if (conveyList2.Contains(StationNum))
+        else if (dev2.Contains(StationNum))
         {
             value = "2";
         }
-        else if (conveyList3.Contains(StationNum))
+        else if (dev3.Contains(StationNum))
         {
             value = "3";
         }
diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index 4856b54..aefbb9f 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -656,7 +656,7 @@
     private static void ConveyorLine(WcsDeviceDto modDevice)
     {
         var plcConn = modDevice.PLCUtil;
-        // 鑾峰彇妤煎眰鏁�
+        // 鑾峰彇妤煎眰鏁癱eshi
         var louCeng = PLCCommon.GetRoadwayByStationNew(modDevice.StationNum);
         switch (modDevice.Value.ToString())
         {
@@ -735,7 +735,7 @@
                     }
                     string pallet = palletVal.ToString();
                     // 鑾峰彇浠诲姟淇℃伅
-                    var modTask = _db.Queryable<WcsTask>().First(s => s.IsDelete == false && s.PalletNo == pallet && (s.Status == TaskStatusEnum.Wait || s.Status == TaskStatusEnum.Doing) && s.TaskType == TaskTypeEnum.In && s.StartRoadway == modDevice.StationNum);
+                    var modTask = _db.Queryable<WcsTask>().First(s => s.IsDelete == false && s.PalletNo == pallet && (s.Status == TaskStatusEnum.Wait || s.Status == TaskStatusEnum.Doing) && s.TaskType == TaskTypeEnum.In);
                     if (modTask == null)
                     {
                         // 姝ゆ墭鐩樻病鏈夊搴旂殑杞Щ浠诲姟 led鏄剧ず
@@ -749,8 +749,9 @@
                     // 浠诲姟鍙枫�佷换鍔$被鍨嬨�佹墭鐩樺彿
                     var modPosTask = modDevice.listStation.FirstOrDefault(s => s.Text == "浠诲姟鍙�");
                     listResult.Add(plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, modTask.TaskNo));
-                    var modPosTaskType = modDevice.listStation.FirstOrDefault(s => s.Text == "浠诲姟鍙�");
-                    listResult.Add(plcConn.SetPlcDBValue(modPosTaskType.PosType, modDevice.DbNumber, modPosTaskType.PlcPos, modTask.TaskType.ToString()));
+                    var modPosTaskType = modDevice.listStation.FirstOrDefault(s => s.Text == "浠诲姟绫诲瀷");
+                    var taskTypeStr = (int)modTask.TaskType;
+                    listResult.Add(plcConn.SetPlcDBValue(modPosTaskType.PosType, modDevice.DbNumber, modPosTaskType.PlcPos, taskTypeStr.ToString()));
                     var modPosPalletNo = modDevice.listStation.FirstOrDefault(s => s.Text == "鎵樼洏鐮�");
                     listResult.Add(plcConn.SetPlcDBValue(modPosPalletNo.PosType, modDevice.DbNumber, modPosPalletNo.PlcPos, modTask.PalletNo));
                     // 璧峰宸ヤ綅銆佺洰鐨勫伐浣�
@@ -880,7 +881,7 @@
                     // 鑾峰彇宸ヤ綅鎵樼洏鐮佷俊鎭�
                     var modPosPallet = modDevice.listStation.FirstOrDefault(m => m.Text == "鎵樼洏鐮�");
                     var (res, palletVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosPallet.PlcPos);
-                    // 鑾峰彇宸ヤ綅鎵樼洏鐮佷俊鎭�
+                    // 鑾峰彇宸ヤ綅浠诲姟鍙蜂俊鎭�
                     var modPosTaskNo = modDevice.listStation.FirstOrDefault(m => m.Text == "浠诲姟鍙�");
                     var (taskRes, taskNoVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosTaskNo.PlcPos);
                     if (!res.IsSucceed || !taskRes.IsSucceed )
@@ -941,12 +942,13 @@
                         var modPosTask = djInfos.FirstOrDefault(s => s.Text == "浠诲姟鍙�");
                         listResult.Add(plcStackeConn.SetPlcDBValue(modPosTask.PosType, djMod.DbNumber, modPosTask.PlcPos, modTask.TaskNo));
                         var modPosTaskType = djInfos.FirstOrDefault(s => s.Text == "浠诲姟绫诲瀷");
-                        listResult.Add(plcStackeConn.SetPlcDBValue(modPosTaskType.PosType, djMod.DbNumber, modPosTaskType.PlcPos, modTask.TaskType.ToString()));
+                        var taskTypeStr = (int)modTask.TaskType;
+                        listResult.Add(plcStackeConn.SetPlcDBValue(modPosTaskType.PosType, djMod.DbNumber, modPosTaskType.PlcPos, taskTypeStr.ToString()));
                         var modPosPalletNo = djInfos.FirstOrDefault(s => s.Text == "鎵樼洏鍙�");
-                        listResult.Add(plcStackeConn.SetPlcDBValue(modPosPallet.PosType, djMod.DbNumber, modPosPallet.PlcPos, modTask.PalletNo));
+                        listResult.Add(plcStackeConn.SetPlcDBValue(modPosPalletNo.PosType, djMod.DbNumber, modPosPalletNo.PlcPos, modTask.PalletNo));
                         
                         //璧峰宸ヤ綅
-                        var modPosStrStationNum = djInfos.FirstOrDefault(s => s.Text == "鍙栬揣鎺�");
+                        var modPosStrStationNum = djInfos.FirstOrDefault(s => s.Text == "璧峰宸ヤ綅");
                         listResult.Add(plcStackeConn.SetPlcDBValue(modPosStrStationNum.PosType, djMod.DbNumber, modPosStrStationNum.PlcPos, modDevice.StationNum));
 
                         //鍙栬揣鎺掋�佸垪銆佸眰
diff --git a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
index 2c5e526..e97215b 100644
--- a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
@@ -60,7 +60,10 @@
     public static void Init()
     {
         cts.Cancel();
-        listPlc = _db.Queryable<WcsPlc>().Where(s => s.Type == PLCTypeEnum.StackingMachine || s.Type == PLCTypeEnum.ConveyorLine || s.Type == PLCTypeEnum.BoxConveyorLine).ToList();
+        listPlc = _db.Queryable<WcsPlc>()
+            .Where(s => s.Type == PLCTypeEnum.StackingMachine || s.Type == PLCTypeEnum.ConveyorLine || s.Type == PLCTypeEnum.BoxConveyorLine)
+            .Where(s => s.Enable == YesNoEnum.Y)
+            .ToList();
         listPlcDevice = _db.Queryable<WcsDevice>().ToList();
         listPlcPosition = _db.Queryable<WcsPosition>().ToList();
         listAlarmInfo = _db.Queryable<WcsAlarmInfo>().ToList();
diff --git a/Admin.NET/WCS.Application/PLC/PLCUtil.cs b/Admin.NET/WCS.Application/PLC/PLCUtil.cs
index 794a66c..0421e04 100644
--- a/Admin.NET/WCS.Application/PLC/PLCUtil.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCUtil.cs
@@ -223,7 +223,7 @@
             address = DbNumber + "." + Pos;
         else
             address = DbNumber + Pos;
-        return this.SetPlcDBValue(PosType, address, Pos, Value);
+        return this.SetPlcDBValue(PosType, address, Value);
     }
     /// <summary>
     /// 鍐欏叆PLC鍊�
diff --git a/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs b/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
index 21fc4f5..46f52d9 100644
--- a/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
+++ b/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
@@ -351,39 +351,51 @@
         var listPosition = await _wcsDeviceRep.Context.Queryable<WcsPosition>().Where(s => s.DeviceId == modDevice.Id).ToListAsync();
         var result = new IoTClient.Result();
         //浠诲姟鍙�
-        if (!modDevice.TaskNo.IsNullOrEmpty())
+        if (modDevice.TaskNo != null)
         {
             var modPositionTask = listPosition.FirstOrDefault(s => s.Text == "浠诲姟鍙�");
             if (modPositionTask != null)
-                result = modUtil.SetPlcDBValue(modPositionTask.PosType, modDbDevice.DbNumber + "." + modPositionTask.PlcPos, modDevice.TaskNo);
+                result = modUtil.SetPlcDBValue(modPositionTask.PosType, modDbDevice.DbNumber, modPositionTask.PlcPos, modDevice.TaskNo);
         }
         //浠诲姟绫诲瀷
-        if (!modDevice.TaskType.IsNullOrEmpty())
+        if (modDevice.TaskType != null)
         {
             var modPositionTaskType = listPosition.FirstOrDefault(s => s.Text == "浠诲姟绫诲瀷");
             if (modPositionTaskType != null)
-                result = modUtil.SetPlcDBValue(modPositionTaskType.PosType, modDbDevice.DbNumber + "." + modPositionTaskType.PlcPos, ((int)modDevice.TaskType).ToString());
+                result = modUtil.SetPlcDBValue(modPositionTaskType.PosType, modDbDevice.DbNumber, modPositionTaskType.PlcPos, ((int)modDevice.TaskType).ToString());
         }
         //璧峰宸ヤ綅
-        if (!modDevice.StartLocatNo.IsNullOrEmpty())
+        if (modDevice.StartLocatNo != null)
         {
             var modPositionStartLocatNo = listPosition.FirstOrDefault(s => s.Text == "璧峰宸ヤ綅");
             if (modPositionStartLocatNo != null)
-                result = modUtil.SetPlcDBValue(modPositionStartLocatNo.PosType, modDbDevice.DbNumber + "." + modPositionStartLocatNo.PlcPos, modDevice.StartLocatNo.ToString());
+                result = modUtil.SetPlcDBValue(modPositionStartLocatNo.PosType, modDbDevice.DbNumber, modPositionStartLocatNo.PlcPos, modDevice.StartLocatNo.ToString());
         }
         //鐩殑宸ヤ綅
-        if (!modDevice.EndLocatNo.IsNullOrEmpty())
+        if (modDevice.EndLocatNo != null)
         {
             var modPositionEndLocatNo = listPosition.FirstOrDefault(s => s.Text == "鐩殑宸ヤ綅");
             if (modPositionEndLocatNo != null)
-                result = modUtil.SetPlcDBValue(modPositionEndLocatNo.PosType, modDbDevice.DbNumber + "." + modPositionEndLocatNo.PlcPos, modDevice.EndLocatNo.ToString());
+                result = modUtil.SetPlcDBValue(modPositionEndLocatNo.PosType, modDbDevice.DbNumber, modPositionEndLocatNo.PlcPos, modDevice.EndLocatNo.ToString());
         }
         //鎵樼洏鐮�
-        if (!modDevice.PalletNo.IsNullOrEmpty())
+        if (modDevice.PalletNo != null)
         {
             var modPositionPalletNo = listPosition.FirstOrDefault(s => s.Text == "鎵樼洏鐮�");
             if (modPositionPalletNo != null)
-                result = modUtil.SetPlcDBValue(modPositionPalletNo.PosType, modDbDevice.DbNumber + "." + modPositionPalletNo.PlcPos, modDevice.PalletNo.ToString());
+                result = modUtil.SetPlcDBValue(modPositionPalletNo.PosType, modDbDevice.DbNumber, modPositionPalletNo.PlcPos, modDevice.PalletNo.ToString());
+        }
+        if (modDevice.Plc != null)
+        {
+            var modPositionPLC = listPosition.FirstOrDefault(s => s.Text == "PLC娴佺▼瀛�");
+            if (modPositionPLC != null)
+                result = modUtil.SetPlcDBValue(modPositionPLC.PosType, modDbDevice.DbNumber, modPositionPLC.PlcPos, modDevice.Plc);
+        }
+        if (modDevice.Wcs != null)
+        {
+            var modPositionWCS = listPosition.FirstOrDefault(s => s.Text == "WCS娴佺▼瀛�");
+            if (modPositionWCS != null)
+                result = modUtil.SetPlcDBValue(modPositionWCS.PosType, modDbDevice.DbNumber, modPositionWCS.PlcPos, modDevice.Wcs);
         }
         if (modPlc.Type == PLCTypeEnum.ConveyorLine)
         {
@@ -392,42 +404,42 @@
             {
                 var modPositionReleaseRow = listPosition.FirstOrDefault(s => s.Text == "鏀捐揣鎺�");
                 if (modPositionReleaseRow != null)
-                    modUtil.SetPlcDBValue(modPositionReleaseRow.PosType, modDbDevice.DbNumber + "." + modPositionReleaseRow.PlcPos, modDevice.ReleaseRow.ToString());
+                    modUtil.SetPlcDBValue(modPositionReleaseRow.PosType, modDbDevice.DbNumber, modPositionReleaseRow.PlcPos, modDevice.ReleaseRow.ToString());
             }
             //鏀捐揣鍒�
             if (modDevice.ReleaseCol != null)
             {
                 var modPositionReleaseCol = listPosition.FirstOrDefault(s => s.Text == "鏀捐揣鍒�");
                 if (modPositionReleaseCol != null)
-                    modUtil.SetPlcDBValue(modPositionReleaseCol.PosType, modDbDevice.DbNumber + "." + modPositionReleaseCol.PlcPos, modDevice.ReleaseCol.ToString());
+                    modUtil.SetPlcDBValue(modPositionReleaseCol.PosType, modDbDevice.DbNumber, modPositionReleaseCol.PlcPos, modDevice.ReleaseCol.ToString());
             }
             //鏀捐揣灞�
             if (modDevice.ReleaseStorey != null)
             {
                 var modPositionReleaseStorey = listPosition.FirstOrDefault(s => s.Text == "鏀捐揣灞�");
                 if (modPositionReleaseStorey != null)
-                    modUtil.SetPlcDBValue(modPositionReleaseStorey.PosType, modDbDevice.DbNumber + "." + modPositionReleaseStorey.PlcPos, modDevice.ReleaseStorey.ToString());
+                    modUtil.SetPlcDBValue(modPositionReleaseStorey.PosType, modDbDevice.DbNumber, modPositionReleaseStorey.PlcPos, modDevice.ReleaseStorey.ToString());
             }
             //鍙栬揣鎺�
             if (modDevice.PickRow != null)
             {
                 var modPositionPickRow = listPosition.FirstOrDefault(s => s.Text == "鍙栬揣鎺�");
                 if (modPositionPickRow != null)
-                    modUtil.SetPlcDBValue(modPositionPickRow.PosType, modDbDevice.DbNumber + "." + modPositionPickRow.PlcPos, modDevice.PickRow.ToString());
+                    modUtil.SetPlcDBValue(modPositionPickRow.PosType, modDbDevice.DbNumber, modPositionPickRow.PlcPos, modDevice.PickRow.ToString());
             }
             //鍙栬揣鍒�
             if (modDevice.PickCol != null)
             {
                 var modPositionPickCol = listPosition.FirstOrDefault(s => s.Text == "鍙栬揣鍒�");
                 if (modPositionPickCol != null)
-                    modUtil.SetPlcDBValue(modPositionPickCol.PosType, modDbDevice.DbNumber + "." + modPositionPickCol.PlcPos, modDevice.PickCol.ToString());
+                    modUtil.SetPlcDBValue(modPositionPickCol.PosType, modDbDevice.DbNumber, modPositionPickCol.PlcPos, modDevice.PickCol.ToString());
             }
             //鍙栬揣灞�
             if (modDevice.PickStorey != null)
             {
                 var modPositionPickStorey = listPosition.FirstOrDefault(s => s.Text == "鍙栬揣灞�");
                 if (modPositionPickStorey != null)
-                    modUtil.SetPlcDBValue(modPositionPickStorey.PosType, modDbDevice.DbNumber + "." + modPositionPickStorey.PlcPos, modDevice.PickStorey.ToString());
+                    modUtil.SetPlcDBValue(modPositionPickStorey.PosType, modDbDevice.DbNumber, modPositionPickStorey.PlcPos, modDevice.PickStorey.ToString());
             }
         }
         modUtil.Close();
diff --git a/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcDto.cs b/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcDto.cs
index 92fc8e0..48c1876 100644
--- a/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcDto.cs
+++ b/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcDto.cs
@@ -41,4 +41,8 @@
     /// </summary>
     public string? Text { get; set; }
 
+    /// <summary>
+    /// 鏄惁鍚敤
+    /// </summary>
+    public YesNoEnum Enable { get; set; }
 }
diff --git a/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcInput.cs b/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcInput.cs
index 015930c..e7d16d1 100644
--- a/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcInput.cs
+++ b/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcInput.cs
@@ -36,6 +36,10 @@
     /// </summary>
     public virtual string? Text { get; set; }
 
+    /// <summary>
+    /// 鏄惁鍚敤
+    /// </summary>
+    public virtual YesNoEnum Enable { get; set; }
 }
 
 /// <summary>
@@ -63,6 +67,10 @@
     /// </summary>
     public PLCTypeEnum? Type { get; set; }
 
+    /// <summary>
+    /// 鏄惁鍚敤
+    /// </summary>
+    public YesNoEnum? Enable { get; set; }
 }
 
 /// <summary>
@@ -88,6 +96,11 @@
     [Required(ErrorMessage = "璁惧绫诲瀷涓嶈兘涓虹┖")]
     public override PLCTypeEnum Type { get; set; }
 
+    /// <summary>
+    /// 鏄惁鍚敤
+    /// </summary>
+    [Required(ErrorMessage = "鏄惁鍚敤涓嶈兘涓虹┖")]
+    public override YesNoEnum Enable { get; set; }
 }
 
 /// <summary>
diff --git a/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcOutput.cs b/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcOutput.cs
index f537ad8..8981df1 100644
--- a/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcOutput.cs
+++ b/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcOutput.cs
@@ -42,6 +42,11 @@
     public string? Text { get; set; }
 
     /// <summary>
+    /// 鏄惁鍚敤
+    /// </summary>
+    public YesNoEnum Enable { get; set; }
+
+    /// <summary>
     /// 鍒涘缓鏃堕棿
     /// </summary>
     public DateTime? CreateTime { get; set; }
diff --git a/Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs b/Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs
index 0d77413..362188f 100644
--- a/Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs
+++ b/Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs
@@ -30,11 +30,12 @@
         input.SearchKey = input.SearchKey?.Trim();
         var query = _wcsPlcRep.AsQueryable()
             .WhereIF(!string.IsNullOrEmpty(input.SearchKey), u =>
-                u.IP.Contains(input.SearchKey)
+                u.IP.Contains(input.SearchKey) && u.Text.Contains(input.SearchKey)
             )
             .WhereIF(input.PLCType.HasValue, u => u.PLCType == input.PLCType)
             .WhereIF(!string.IsNullOrWhiteSpace(input.IP), u => u.IP.Contains(input.IP.Trim()))
             .WhereIF(input.Type.HasValue, u => u.Type == input.Type)
+            .WhereIF(input.Enable.HasValue, u => u.Enable == input.Enable)
             .Select<WcsPlcOutput>();
         return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize);
     }
diff --git a/Admin.NET/WCS.Application/Util/HttpService.cs b/Admin.NET/WCS.Application/Util/HttpService.cs
index 9509fb6..1119c0f 100644
--- a/Admin.NET/WCS.Application/Util/HttpService.cs
+++ b/Admin.NET/WCS.Application/Util/HttpService.cs
@@ -1,4 +1,5 @@
-锘縰sing Furion.Logging;
+锘縰sing Elastic.Clients.Elasticsearch;
+using Furion.Logging;
 using Furion.RemoteRequest.Extensions;
 using Newtonsoft.Json;
 using System.Text;
@@ -46,14 +47,16 @@
             string url = Urls.WMSAddress + ":" + Urls.WMSPort;
             var result =  (url + "/api/DownAPi/RequestRoadWay").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseTasks>().Result;
             Log.Information("璋冪敤WMS鎺ュ彛鍙嶉浠诲姟鎺ュ彛" + result.ToJson());
-            if (result.StatusCode == "0")
+            if (result.Success == 0)
             {
                                 
                 var taskAdd = new WcsTask()
                 {
                     TaskType = TaskTypeEnum.In,
+                    Status = TaskStatusEnum.Wait,
                     Origin = "WMS",
                     StartLocate = startLocat,
+                    PalletNo = palletNo,
                     TaskNo = result.TaskList.TaskNo,
                     EndLocate = result.TaskList.EndLocate,
                     EndRoadway = result.TaskList.EndRoadway
@@ -80,153 +83,6 @@
         endLocat = PLCCommon.RoadwayToStationNum(endLocat, ceng);
 
         return returnStr;
-        // 纭畾鐩爣宸ヤ綅//闇�娣诲姞灞傛暟纭
-        //switch (endLocat)
-        //{
-        //    case "R01":
-        //        if (ceng == "1")
-        //        {
-        //            endLocat = "145";
-        //        }
-        //        else if (ceng == "2")
-        //        {
-        //            endLocat = "252";
-        //        }
-        //        else if (ceng == "3")
-        //        {
-        //            endLocat = "101";
-        //        }
-        //        break;
-        //    case "R02":
-        //        if (ceng == "1")
-        //        {
-        //            endLocat = "137";
-        //        }
-        //        else if (ceng == "2")
-        //        {
-        //            endLocat = "260";
-        //        }
-        //        else if (ceng == "3")
-        //        {
-        //            endLocat = "405";
-        //        }
-        //        break;
-        //    case "R03":
-        //        if (ceng == "1")
-        //        {
-        //            endLocat = "127";
-        //        }
-        //        else if (ceng == "2")
-        //        {
-        //            endLocat = "270";
-        //        }
-        //        else if (ceng == "3")
-        //        {
-        //            endLocat = "409";
-        //        }
-        //        break;
-        //    case "R04":
-        //        if (ceng == "1")
-        //        {
-        //            endLocat = "119";
-        //        }
-        //        else if (ceng == "2")
-        //        {
-        //            endLocat = "278";
-        //        }
-        //        else if (ceng == "3")
-        //        {
-        //            endLocat = "413";
-        //        }
-        //        break;
-        //    case "R05":
-        //        if (ceng == "1")
-        //        {
-        //            endLocat = "109";
-        //        }
-        //        else if (ceng == "2")
-        //        {
-        //            endLocat = "288";
-        //        }
-        //        else if (ceng == "3")
-        //        {
-        //            endLocat = "417";
-        //        }
-        //        break;
-        //    case "R06":
-        //        if (ceng == "1")
-        //        {
-        //            endLocat = "101";
-        //        }
-        //        else if (ceng == "2")
-        //        {
-        //            endLocat = "301";
-        //        }
-        //        else if (ceng == "3")
-        //        {
-        //            endLocat = "421";
-        //        }
-        //        break;
-        //    case "R07":
-        //        if (ceng == "1")
-        //        {
-        //            endLocat = "091";
-        //        }
-        //        else if (ceng == "2")
-        //        {
-        //            endLocat = "307";
-        //        }
-        //        else if (ceng == "3")
-        //        {
-        //            endLocat = "425";
-        //        }
-        //        break;
-        //    case "R08":
-        //        if (ceng == "1")
-        //        {
-        //            endLocat = "083";
-        //        }
-        //        else if (ceng == "2")
-        //        {
-        //            endLocat = "315";
-        //        }
-        //        else if (ceng == "3")
-        //        {
-        //            endLocat = "429";
-        //        }
-        //        break;
-        //    case "R09":
-        //        if (ceng == "1")
-        //        {
-        //            endLocat = "073";
-        //        }
-        //        else if (ceng == "2")
-        //        {
-        //            endLocat = "325";
-        //        }
-        //        else if (ceng == "3")
-        //        {
-        //            endLocat = "433";
-        //        }
-        //        break;
-        //    case "R10":
-        //        if (ceng == "1")
-        //        {
-        //            endLocat = "065";
-        //        }
-        //        else if (ceng == "2")
-        //        {
-        //            endLocat = "337";
-        //        }
-        //        else if (ceng == "3")
-        //        {
-        //            endLocat = "437";
-        //        }
-        //        break;
-        //}
-
-
-
     }
 
     /// <summary>
@@ -258,20 +114,35 @@
             string url = Urls.WMSAddress + ":" + Urls.WMSPort;
             var result = (url + "/api/DownAPi/RequestLocation").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseTasks>().Result;
             Log.Information("璋冪敤WMS鐢宠鍌ㄤ綅鎺ュ彛鍙嶉浠诲姟鎺ュ彛" + result.ToJson());
-            if (result.StatusCode == "0")
+            if (result.Success == 0)
             {
 
-                var taskAdd = new WcsTask()
+               
+                var taskUp = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && m.TaskNo == result.TaskList.TaskNo);
+                if (taskUp == null)
                 {
-                    TaskType = TaskTypeEnum.In,
-                    Origin = "WMS",
-                    StartLocate = startLocat,
-                    TaskNo = result.TaskList.TaskNo,
-                    EndLocate = result.TaskList.EndLocate,
-                    EndRoadway = result.TaskList.EndRoadway
-                };
+                    var taskAdd = new WcsTask()
+                    {
+                        TaskNo = result.TaskList.TaskNo,
+                        TaskType = TaskTypeEnum.In,
+                        Status = TaskStatusEnum.Wait,
+                        //IsSuccess =TaskSuccessEnum.Success,
+                        Origin = "WMS",
+                        StartLocate = startLocat,
+                        PalletNo = palletNo,
+                        EndLocate = result.TaskList.EndLocate,
+                        EndRoadway = result.TaskList.EndRoadway
+                    };
+                    _db.Insertable(taskAdd).ExecuteCommand();
+                }
+                else
+                {
+                    taskUp.EndRoadway = result.TaskList.EndRoadway;
+                    taskUp.EndLocate = result.TaskList.EndLocate;
+                    _db.Updateable(taskUp).ExecuteCommand();
+                }
 
-                _db.Updateable(taskAdd).ExecuteCommand();
+               
                 returnStr = result.TaskList.EndLocate;
                 taskNo = result.TaskList.TaskNo;
             }
diff --git a/Web/src/views/wcs/wcsPlc/component/editDialog.vue b/Web/src/views/wcs/wcsPlc/component/editDialog.vue
index 7464412..babd249 100644
--- a/Web/src/views/wcs/wcsPlc/component/editDialog.vue
+++ b/Web/src/views/wcs/wcsPlc/component/editDialog.vue
@@ -68,6 +68,18 @@
 						</el-form-item>
 
 					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="鏄惁鍚敤" prop="enable">
+							<el-select clearable v-model="ruleForm.enable" placeholder="璇烽�夋嫨鏄惁鍚敤">
+								<el-option v-for="(item, index) in dl('YesNoEnum')" :key="index"
+									:value="Number(item.value)"
+									:label="`${item.name} (${item.code}) [${item.value}]`"></el-option>
+
+							</el-select>
+
+						</el-form-item>
+
+					</el-col>
 				</el-row>
 			</el-form>
 			<template #footer>
diff --git a/Web/src/views/wcs/wcsPlc/index.vue b/Web/src/views/wcs/wcsPlc/index.vue
index b41a6b3..a229481 100644
--- a/Web/src/views/wcs/wcsPlc/index.vue
+++ b/Web/src/views/wcs/wcsPlc/index.vue
@@ -35,6 +35,14 @@
 
             </el-form-item>
           </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
+            <el-form-item label="鏄惁鍚敤">
+              <el-select clearable="" v-model="queryParams.enable" placeholder="璇烽�夋嫨鏄惁鍚敤">
+                <el-option v-for="(item, index) in dl('YesNoEnum')" :key="index" :value="item.value"
+                  :label="`${item.name} (${item.code}) [${item.value}] `" />
+              </el-select>
+            </el-form-item>
+          </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
             <el-form-item>
               <el-button-group style="display: flex; align-items: center;">
@@ -74,6 +82,12 @@
         </el-table-column>
         <el-table-column prop="wareHouseNo" label="浠撳簱鍙�" show-overflow-tooltip="" />
         <el-table-column prop="text" label="鎻忚堪" show-overflow-tooltip="" />
+        <el-table-column prop="enable" label="鏄惁鍚敤" show-overflow-tooltip="">
+          <template #default="scope">
+            <el-tag :type="dv('YesNoEnum', scope.row.enable)?.tagType"> {{ dv('YesNoEnum',
+              scope.row.enable)?.name }}</el-tag>
+          </template>
+        </el-table-column>
         <el-table-column label="淇敼璁板綍" width="80" align="center" show-overflow-tooltip>
           <template #default="scope">
             <ModifyRecord :data="scope.row" />

--
Gitblit v1.8.0