From 6a5b4a640ec6a0340335229b5fd02f4a258fa9ca Mon Sep 17 00:00:00 2001 From: whm <2921535080@qq.com> Date: Sun, 29 Sep 2024 16:37:15 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=89=8D=E5=90=8E=E5=8C=BA=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E5=88=86=E9=85=8D=EF=BC=9A=E7=AE=B1=E5=AD=90=E5=89=8D?= =?UTF-8?q?=E5=90=8E=E5=8C=BA=E9=83=BD=E6=8B=A3=E9=80=89=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E6=A0=B9=E6=8D=AE=E6=95=B0=E9=87=8F=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E5=8E=BB=E5=89=8D=E5=8C=BA=E5=90=8E=E5=8C=BA=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HisGetData/StackerOutC1.cs | 49 +++++++++++++++---- 1 file changed, 40 insertions(+), 9 deletions(-) diff --git a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerOutC1.cs b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerOutC1.cs index 26ddcec..729eb9a 100644 --- a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerOutC1.cs +++ b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerOutC1.cs @@ -129,18 +129,49 @@ public class StackerOutC1(ConveyOperation conveyOperation, DataBaseData dataBase } else // 两个地区都存在任务 { - ConsoleLog.Info($"出库分流:{area} 箱码:{msg} 存在 1~5 站台任务且存在 6~9 区域任务"); - Random random = new(); - var id = random.Next(0, 100); - ConveyPLCTask plcTask = new(plcId, id < Convert.ToInt32(CommonData.AppConfig.Pick2Lv) ? (short)ConveyRouterEnum.Move : (short)ConveyRouterEnum.Go); - string errText = conveyOperation.WriteTask(area, plcTask); - if (string.IsNullOrEmpty(errText)) + // 比对两个区的箱子数量 + var readResult_1 = CommonTool.Siemens.ReadInt16WithName($"数量1"); + var readResult_2 = CommonTool.Siemens.ReadInt16WithName($"数量2"); + if (readResult_1.Value >= readResult_2.Value)//前区数量多去后区 { - ConsoleLog.Success($"出库分流:{area} 箱码:{msg},写入PLC成功,{plcTask}"); + ConsoleLog.Info($"出库分流:{area} 箱码:{msg} 存在 1~5 站台任务且存在 6~9 区域任务"); + ConveyPLCTask plcTask = new(plcId, (short)ConveyRouterEnum.Move); + string errText = conveyOperation.WriteTask(area, plcTask); + if (string.IsNullOrEmpty(errText)) + { + ConsoleLog.Success($"出库分流:{area} 箱码:{msg},写入PLC成功,{plcTask}"); + return; + } + ConsoleLog.Warning($"【警告】出库分流:{area} 箱码:{msg},写入PLC失败,{plcTask},信息:{errText}"); + return ; + } + else//后区数量多去前区 + { + ConsoleLog.Info($"出库分流:{area} 箱码:{msg} 存在 1~5 站台任务且存在 6~9 区域任务"); + ConveyPLCTask plcTask = new(plcId, (short)ConveyRouterEnum.Go); + string errText = conveyOperation.WriteTask(area, plcTask); + if (string.IsNullOrEmpty(errText)) + { + ConsoleLog.Success($"出库分流:{area} 箱码:{msg},写入PLC成功,{plcTask}"); + return; + } + ConsoleLog.Warning($"【警告】出库分流:{area} 箱码:{msg},写入PLC失败,{plcTask},信息:{errText}"); return; } - ConsoleLog.Warning($"【警告】出库分流:{area} 箱码:{msg},写入PLC失败,{plcTask},信息:{errText}"); - return; + + + //ConsoleLog.Info($"出库分流:{area} 箱码:{msg} 存在 1~5 站台任务且存在 6~9 区域任务"); + //Random random = new(); + //var id = random.Next(0, 100); + //ConveyPLCTask plcTask = new(plcId, id < Convert.ToInt32(CommonData.AppConfig.Pick2Lv) ? (short)ConveyRouterEnum.Move : (short)ConveyRouterEnum.Go); + //string errText = conveyOperation.WriteTask(area, plcTask); + //if (string.IsNullOrEmpty(errText)) + //{ + // ConsoleLog.Success($"出库分流:{area} 箱码:{msg},写入PLC成功,{plcTask}"); + // return; + //} + //ConsoleLog.Warning($"【警告】出库分流:{area} 箱码:{msg},写入PLC失败,{plcTask},信息:{errText}"); + //return; } } From 1986f6dc06aa72597c7c1e4796199f462956044d Mon Sep 17 00:00:00 2001 From: whm <2921535080@qq.com> Date: Mon, 14 Oct 2024 14:04:36 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=86=85=E5=AE=B9?= =?UTF-8?q?=EF=BC=9A=201.=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3=EF=BC=8C?= =?UTF-8?q?=E5=8F=96=E6=B6=88wms=E4=BB=BB=E5=8A=A1=202.=E6=9B=B4=E6=94=B9w?= =?UTF-8?q?ms=E6=9C=80=E5=A4=A7=E4=BB=BB=E5=8A=A1=E6=95=B0=E9=87=8F26=203.?= =?UTF-8?q?=E6=A0=B9=E6=8D=AEPLC=E6=8F=90=E4=BE=9B=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E5=88=86=E9=85=8D=E5=89=8D=E5=90=8E=E5=8C=BA=E9=83=BD?= =?UTF-8?q?=E6=9C=89=E4=BB=BB=E5=8A=A1=E7=9A=84=E7=AE=B1=E5=AD=90=E7=9A=84?= =?UTF-8?q?=E5=8E=BB=E5=90=91=204.=E6=9B=B4=E6=94=B9=E6=8B=A3=E9=80=89?= =?UTF-8?q?=E6=97=B6=E7=94=B5=E5=AD=90=E6=A0=87=E7=AD=BE=E4=B8=BA=E5=B8=B8?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WmsController/ConveyController.cs | 9 ++++ .../WmsController/WmsTaskController.cs | 1 - .../Service/WmsService/ConveyService.cs | 45 +++++++++++++++++++ .../Service/WmsService/WmsTaskService.cs | 11 +---- .../CommonAction/SendWmsTaskStatus.cs | 2 + .../HisGetData/StackerOutC1.cs | 1 + WcsMain/DataBase/Dao/AppConveyTaskDao.cs | 38 ++++++++++++++++ WcsMain/EquipOperation/ElTag/AtopOperation.cs | 2 +- 8 files changed, 98 insertions(+), 11 deletions(-) diff --git a/WcsMain/ApiServe/Controllers/WmsController/ConveyController.cs b/WcsMain/ApiServe/Controllers/WmsController/ConveyController.cs index 2129922..0b63702 100644 --- a/WcsMain/ApiServe/Controllers/WmsController/ConveyController.cs +++ b/WcsMain/ApiServe/Controllers/WmsController/ConveyController.cs @@ -28,4 +28,13 @@ public class ConveyController(ConveyService conveyService) : ControllerBase [HttpPost("disposeVehicle")] public WmsApiResponse DisposeVehicle([FromBody] DisposeVehicleRequest request) => conveyService.DisposeVehicle(request); + + /// + /// 接收上位系统发过来的取消输送任务的指令 + /// + /// + /// + [HttpPost("cancel")] + public WmsApiResponse CancelVehicle([FromBody] List request) => conveyService.CancelConveyTask(request); + } diff --git a/WcsMain/ApiServe/Controllers/WmsController/WmsTaskController.cs b/WcsMain/ApiServe/Controllers/WmsController/WmsTaskController.cs index aee7a4f..fbd9214 100644 --- a/WcsMain/ApiServe/Controllers/WmsController/WmsTaskController.cs +++ b/WcsMain/ApiServe/Controllers/WmsController/WmsTaskController.cs @@ -39,5 +39,4 @@ public class WmsTaskController(WmsTaskService wmsTaskService) : ControllerBase /// [HttpPost("setStackerTaskNewDestination")] public WmsApiResponse GetStackerTaskNewDestination([FromBody] GetStackerTaskNewDestinationRequest request) => wmsTaskService.GetStackerTaskNewDestination(request); - } \ No newline at end of file diff --git a/WcsMain/ApiServe/Service/WmsService/ConveyService.cs b/WcsMain/ApiServe/Service/WmsService/ConveyService.cs index 26ab984..fdfbec0 100644 --- a/WcsMain/ApiServe/Service/WmsService/ConveyService.cs +++ b/WcsMain/ApiServe/Service/WmsService/ConveyService.cs @@ -70,4 +70,49 @@ public class ConveyService(DataBaseData dataBaseData, AppConveyTaskDao conveyTas if(string.IsNullOrEmpty(writeResult)) return WmsApiResponseFactory.Success(); return WmsApiResponseFactory.Fail(writeResult); } + + + /// + /// 取消wms的箱式线任务 + /// + /// + /// + public WmsApiResponse CancelConveyTask(List request) + { + try + { + foreach (var item in request) + { + if (string.IsNullOrEmpty(item.VehicleNo) || item.TaskType == default || item.Locations == default || item.Locations.Length < 1) + { + return WmsApiResponseFactory.RequestErr("存在必填项未填"); + } + //遍历所有点位 + foreach (var location in item.Locations) + { + //生成删除的对象 + var taskToDelete = new AppConveyTask + { + VehicleNo = item.VehicleNo, + Location = location + }; + int deleteResult = conveyTaskDao.VehicledDelete(taskToDelete); + if (deleteResult > 0) + { + return WmsApiResponseFactory.Success("删除成功"); + } + else + { + return WmsApiResponseFactory.DataBaseErr("删除失败"); + } + } + } + } + catch (Exception ex) + { + ConsoleLog.Error(ex.ToString()); + return WmsApiResponseFactory.Fail(ex); + } + return WmsApiResponseFactory.Success("没有找到匹配的记录"); + } } diff --git a/WcsMain/ApiServe/Service/WmsService/WmsTaskService.cs b/WcsMain/ApiServe/Service/WmsService/WmsTaskService.cs index 29ea4ea..fe905f5 100644 --- a/WcsMain/ApiServe/Service/WmsService/WmsTaskService.cs +++ b/WcsMain/ApiServe/Service/WmsService/WmsTaskService.cs @@ -7,6 +7,7 @@ using WcsMain.Business.CommonAction; using WcsMain.Common; using WcsMain.DataBase.Dao; using WcsMain.DataBase.TableEntity; +using WcsMain.Enum.Convey; using WcsMain.Enum.Stacker; using WcsMain.ExtendMethod; using WcsMain.Plugins; @@ -28,7 +29,7 @@ public class WmsTaskService(WmsTaskAction wmsTaskAction, AppWmsTaskDao wmsTaskDa /// public WmsApiResponse> GetStackerTask(List request) { - if (request.Count < 1 || request.Count > 20) return WmsApiResponseFactory.RequestErr>(null, "请求的任务数量只能在 1 至 20 范围内"); + if (request.Count < 1 || request.Count > 26) return WmsApiResponseFactory.RequestErr>(null, "请求的任务数量只能在 1 至 26 范围内"); List errRequest = []; // 存放错误的请求 /* 插入库存信息 */ // ---- 库存由WMS管理,数据库表也无需操作 List wmsTasks = []; @@ -173,13 +174,5 @@ public class WmsTaskService(WmsTaskAction wmsTaskAction, AppWmsTaskDao wmsTaskDa // // // } - - - - } - - - - } \ No newline at end of file diff --git a/WcsMain/Business/CommonAction/SendWmsTaskStatus.cs b/WcsMain/Business/CommonAction/SendWmsTaskStatus.cs index fbd8b0a..d70f9c8 100644 --- a/WcsMain/Business/CommonAction/SendWmsTaskStatus.cs +++ b/WcsMain/Business/CommonAction/SendWmsTaskStatus.cs @@ -16,6 +16,8 @@ namespace WcsMain.Business.CommonAction; public class SendWmsTaskStatus(AppWmsTaskDao wmsTaskDao, WmsWebApiPost wmsWebApiPost) { + + /// /// 发送 WMS 任务异常 /// diff --git a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerOutC1.cs b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerOutC1.cs index 729eb9a..579a9c3 100644 --- a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerOutC1.cs +++ b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerOutC1.cs @@ -132,6 +132,7 @@ public class StackerOutC1(ConveyOperation conveyOperation, DataBaseData dataBase // 比对两个区的箱子数量 var readResult_1 = CommonTool.Siemens.ReadInt16WithName($"数量1"); var readResult_2 = CommonTool.Siemens.ReadInt16WithName($"数量2"); + ConsoleLog.Info($"前区箱子数量{readResult_1.Value},后区箱子数量{readResult_2.Value}"); if (readResult_1.Value >= readResult_2.Value)//前区数量多去后区 { ConsoleLog.Info($"出库分流:{area} 箱码:{msg} 存在 1~5 站台任务且存在 6~9 区域任务"); diff --git a/WcsMain/DataBase/Dao/AppConveyTaskDao.cs b/WcsMain/DataBase/Dao/AppConveyTaskDao.cs index 60b582d..f54232d 100644 --- a/WcsMain/DataBase/Dao/AppConveyTaskDao.cs +++ b/WcsMain/DataBase/Dao/AppConveyTaskDao.cs @@ -93,6 +93,44 @@ public class AppConveyTaskDao } } + /// + /// 删除数据,以主键为条件 + /// + /// + /// + public int Delete(AppConveyTask appConveyTask) + { + try + { + var sqlFuc = CommonTool.DbServe.Deleteable(appConveyTask); + return sqlFuc.ExecuteCommand(); + } + catch (Exception ex) + { + _ = ex; + return 0; + } + } + + /// + /// 根据箱号和点位删除任务 + /// + /// + /// + public int VehicledDelete(AppConveyTask appConveyTask) + { + try + { + var deleteResult = CommonTool.DbServe.Deleteable().Where(it => it.VehicleNo == appConveyTask.VehicleNo && it.Location == appConveyTask.Location).ExecuteCommand(); + return deleteResult; + } + catch (Exception ex) + { + _ = ex; + return 0; + } + } + /// diff --git a/WcsMain/EquipOperation/ElTag/AtopOperation.cs b/WcsMain/EquipOperation/ElTag/AtopOperation.cs index 2653bde..8a2f8a0 100644 --- a/WcsMain/EquipOperation/ElTag/AtopOperation.cs +++ b/WcsMain/EquipOperation/ElTag/AtopOperation.cs @@ -62,7 +62,7 @@ public class AtopOperation /// /// /// - public Exception? ShowMsg(string? controllerDisplayName, int? tagId, string? value, LedColor ledColor = LedColor.Green, LedStatus ledStatus = LedStatus._0_5secblinking) + public Exception? ShowMsg(string? controllerDisplayName, int? tagId, string? value, LedColor ledColor = LedColor.Green, LedStatus ledStatus = LedStatus.LEDOn) { if (controllerDisplayName == default || tagId == default || value == default) {