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