diff --git a/WcsMain/ApiClient/DataEntity/WmsEntity/ConveyButtonClickRequest.cs b/WcsMain/ApiClient/DataEntity/WmsEntity/ConveyButtonClickRequest.cs new file mode 100644 index 0000000..3ac5091 --- /dev/null +++ b/WcsMain/ApiClient/DataEntity/WmsEntity/ConveyButtonClickRequest.cs @@ -0,0 +1,29 @@ +using Newtonsoft.Json; + +namespace WcsMain.ApiClient.DataEntity.WmsEntity; + + +/// +/// 上报输送线按钮 +/// +public class ConceyButtonClickRequest +{ + + /// + /// 载具号 + /// + [JsonProperty("vehicleNo")] + public string? VehicleNo { get; set; } + + /// + /// 拣选站台 + /// + [JsonProperty("location")] + public string? Location { get; set; } + + /// + /// 备注 + /// + [JsonProperty("remark")] + public string? Remark { get; set; } +} diff --git a/WcsMain/ApiClient/DataEntity/WmsEntity/ElTagComfirmButtonClickRequest.cs b/WcsMain/ApiClient/DataEntity/WmsEntity/ElTagComfirmButtonClickRequest.cs new file mode 100644 index 0000000..993312a --- /dev/null +++ b/WcsMain/ApiClient/DataEntity/WmsEntity/ElTagComfirmButtonClickRequest.cs @@ -0,0 +1,41 @@ +using Newtonsoft.Json; + +namespace WcsMain.ApiClient.DataEntity.WmsEntity; + +/// +/// 电子标签确认按钮按下请求数据 +/// +public class ElTagComfirmButtonClickRequest +{ + + [JsonProperty("taskGroup")] + public string? TaskGroup { get; set; } + + [JsonProperty("taskType")] + public int? TaskType { get; set; } + + [JsonProperty("vehicleNo")] + public string? VehicleNo { get; set; } + + [JsonProperty("orderId")] + public string? OrderId { get; set; } + + [JsonProperty("taskId")] + public string? TaskId { get; set; } + + [JsonProperty("location")] + public string? Location { get; set; } + + [JsonProperty("goodsId")] + public string? GoodsId { get; set; } + + [JsonProperty("goodsName")] + public string? GoodsName { get; set; } + + [JsonProperty("needNum")] + public int? NeedNum { get; set; } + + [JsonProperty("confirmNum")] + public int? ConfirmNum { get; set; } + +} diff --git a/WcsMain/ApiClient/DataEntity/WmsEntity/RequestBackRequest.cs b/WcsMain/ApiClient/DataEntity/WmsEntity/RequestBackRequest.cs new file mode 100644 index 0000000..a83b5e7 --- /dev/null +++ b/WcsMain/ApiClient/DataEntity/WmsEntity/RequestBackRequest.cs @@ -0,0 +1,18 @@ +using Newtonsoft.Json; + +namespace WcsMain.ApiClient.DataEntity.WmsEntity; + +public class RequestBackRequest +{ + + public RequestBackRequest(string? vehicleId) => VehicleId = vehicleId; + + + /// + /// 载具号 + /// + [JsonProperty("vehicleId")] + public string? VehicleId { get; set; } + + +} diff --git a/WcsMain/ApiClient/DataEntity/WmsEntity/UploadPickStandRequest.cs b/WcsMain/ApiClient/DataEntity/WmsEntity/UploadPickStandRequest.cs index 44f96a0..5c5562b 100644 --- a/WcsMain/ApiClient/DataEntity/WmsEntity/UploadPickStandRequest.cs +++ b/WcsMain/ApiClient/DataEntity/WmsEntity/UploadPickStandRequest.cs @@ -8,6 +8,12 @@ namespace WcsMain.ApiClient.DataEntity.WmsEntity; /// public class UploadPickStandRequest { + /// + /// 任务组 + /// + [JsonProperty("taskGroup")] + public string? TaskGroup { get; set; } + /// /// 载具号 /// @@ -17,8 +23,8 @@ public class UploadPickStandRequest /// /// 拣选站台 /// - [JsonProperty("pickStand")] - public string? PickStand { get; set; } + [JsonProperty("location")] + public string? Location { get; set; } /// /// 备注 diff --git a/WcsMain/ApiServe/Service/WmsService/ConveyService.cs b/WcsMain/ApiServe/Service/WmsService/ConveyService.cs index 96ff73b..26ab984 100644 --- a/WcsMain/ApiServe/Service/WmsService/ConveyService.cs +++ b/WcsMain/ApiServe/Service/WmsService/ConveyService.cs @@ -66,7 +66,7 @@ public class ConveyService(DataBaseData dataBaseData, AppConveyTaskDao conveyTas public WmsApiResponse DisposeVehicle(DisposeVehicleRequest request) { if(string.IsNullOrEmpty(request.Location)) return WmsApiResponseFactory.RequestErr("存在必填项未填"); - var writeResult = conveyOperation.DisposeVehicle(request.Location); + var writeResult = conveyOperation.AllowPickStandGo(request.Location, 2); if(string.IsNullOrEmpty(writeResult)) return WmsApiResponseFactory.Success(); return WmsApiResponseFactory.Fail(writeResult); } diff --git a/WcsMain/Business/CirculationTask/Convey/PickStandButton.cs b/WcsMain/Business/CirculationTask/Convey/PickStandButton.cs index 320b73b..27d8809 100644 --- a/WcsMain/Business/CirculationTask/Convey/PickStandButton.cs +++ b/WcsMain/Business/CirculationTask/Convey/PickStandButton.cs @@ -44,19 +44,18 @@ public class PickStandButton(AppConveyStandDao conveyStandDao, ConveyOperation c { int pickButtonStatus = conveyOperation.GetAllowPickStandGo(pickStand.StandId!); if (pickButtonStatus != 1) return; - ConsoleLog.Info($"【提示】拣选站:{pickStand.StandId} 按钮已经按下"); - conveyOperation.AllowPickStandGo(pickStand.StandId!, 2); - ConsoleLog.Success($"{pickStand.StandId}按钮按下,调试阶段直接放行"); - return; + //ConsoleLog.Info($"【提示】拣选站:{pickStand.StandId} 按钮已经按下"); + //conveyOperation.AllowPickStandGo(pickStand.StandId!, 2); + //ConsoleLog.Success($"{pickStand.StandId}按钮按下,调试阶段直接放行"); + //return; // 发送wms按钮按下 - UploadPickStandRequest request = new UploadPickStandRequest() + ConceyButtonClickRequest request = new() { - PickStand = pickStand.StandId, + Location = pickStand.StandId, VehicleNo = "", Remark = "按钮按下上报" }; - var responseEntity = wmsWebApiPost.HttpPost(request, - CommonData.AppApiBaseInfos.GetAddress("UploadPickStandButtonMethod") ?? "", 5000); + var responseEntity = wmsWebApiPost.HttpPost(request, CommonData.AppApiBaseInfos.GetAddress("UploadPickStandButtonMethod") ?? "", 2000); if (!responseEntity.IsSend) return; // 发送失败不处理,下一次循环在发送 // 只要发送成功则不再发送 ConsoleLog.Info( $"拣选站:{pickStand.StandId} 按钮已经按下上报成功,WMS返回:{responseEntity.ResponseMsg}"); diff --git a/WcsMain/Business/CirculationTask/Convey/ReadScanCode.cs b/WcsMain/Business/CirculationTask/Convey/ReadScanCode.cs index 6117e1b..f442459 100644 --- a/WcsMain/Business/CirculationTask/Convey/ReadScanCode.cs +++ b/WcsMain/Business/CirculationTask/Convey/ReadScanCode.cs @@ -32,22 +32,26 @@ public class ReadScanCode(AppRouterMethodDao routerMethodDao, ConveyOperation co List tasks = []; foreach(AppRouterMethod router in routers) { - (var readErrText, var scanOk, var code) = conveyOperation.ReadScanInfo(router.Area); - if(!string.IsNullOrEmpty(readErrText)) - { - ConsoleLog.Exception($"【异常】读取扫码:{router.Area} 数据异常,信息:{readErrText}"); - Thread.Sleep(5000); - return true; // 不读了,估计网断了 - } - if(scanOk != (int)TrueFalseEnum.TRUE) { continue; } tasks.Add(Task.Factory.StartNew(() => { - historyConveyDataHander.GetData("-", code, router.Area ?? ""); + (var readErrText, var scanOk, var code) = conveyOperation.ReadScanInfo(router.Area); + if (!string.IsNullOrEmpty(readErrText)) + { + ConsoleLog.Exception($"【异常】读取扫码:{router.Area} 数据异常,信息:{readErrText}"); + Thread.Sleep(5000); + return; // 不读了,估计网断了 + } + if (scanOk != (short)TrueFalseEnum.TRUE) { return; } string clearErrText = conveyOperation.ClearScanStatus(router.Area); - if(!string.IsNullOrEmpty(clearErrText)) + if (!string.IsNullOrEmpty(clearErrText)) { ConsoleLog.Exception($"【异常】扫码:{router.Area} 清理读码信号异常,信息:{clearErrText}"); } + else + { + ConsoleLog.Success($"扫码:{router.Area} 清理读码信号成功,点位:{router.Area}"); + } + historyConveyDataHander.GetData("-", code, router.Area ?? ""); scanRecordDao.Insert(new AppScanRecord() { RecordId = dataBaseData.GetNewUUID2(), ScanId = router.Area, Code = code, ScanTime = DateTime.Now }); })); } diff --git a/WcsMain/Business/CirculationTask/Convey/UploadBoxArrive.cs b/WcsMain/Business/CirculationTask/Convey/UploadBoxArrive.cs index 30f1cc6..3bb7c98 100644 --- a/WcsMain/Business/CirculationTask/Convey/UploadBoxArrive.cs +++ b/WcsMain/Business/CirculationTask/Convey/UploadBoxArrive.cs @@ -38,7 +38,6 @@ public class UploadBoxArrive(AppConveyStandDao conveyStandDao, ConveyOperation c List tasks = []; foreach (AppConveyStand stand in _pickStands) { - Thread.Sleep(20); Task task = new(() => { string code = conveyOperation.ReadStandCode(stand.StandId!); @@ -69,19 +68,22 @@ public class UploadBoxArrive(AppConveyStandDao conveyStandDao, ConveyOperation c { TaskId = pickTask.TaskId, TaskStatus = (int)ConveyTaskStatusEnum.arrive, + ArriveLocation = stand.StandId, CompleteTime = DateTime.Now, Remark = "PLC上报料箱到达" }); + //return; // 测试 + // 发送wms料箱到达 UploadPickStandRequest request = new() { - PickStand = stand.StandId, + Location = stand.StandId, VehicleNo = pickTask.VehicleNo, Remark = "" }; var responseEntity = wmsWebApiPost.HttpPost(request, - CommonData.AppApiBaseInfos.GetAddress("UploadBoxArrive") ?? "", 5000); + CommonData.AppApiBaseInfos.GetAddress("UploadBoxArrive") ?? "", 2000); if (responseEntity.IsSend) // 发送失败不处理,下一次循环在发送 { // 只要发送成功则不再发送 diff --git a/WcsMain/Business/CirculationTask/ElTag/LightElTag.cs b/WcsMain/Business/CirculationTask/ElTag/LightElTag.cs index 6822df3..341318b 100644 --- a/WcsMain/Business/CirculationTask/ElTag/LightElTag.cs +++ b/WcsMain/Business/CirculationTask/ElTag/LightElTag.cs @@ -57,15 +57,13 @@ public class LightElTag(AppElTagTaskDao tagTaskDao, AtopOperation atopOperation, /* 点亮标签 */ LedColor lEDColor = new Func(() => { - switch (tagTask.TaskType) + return tagTask.TaskType switch { - case (int)ElTagTaskTypeEnum.PICK: - return LedColor.Green; - case (int)ElTagTaskTypeEnum.STOCK: - return LedColor.Blue; - default: - return LedColor.Red; + (int)ElTagTaskTypeEnum.PICK => LedColor.Green, + (int)ElTagTaskTypeEnum.STOCK => LedColor.Blue, + _ => LedColor.Red, }; + ; }).Invoke(); var resultException = atopOperation.ShowMsg(tagInfo.ControllerDisplayName, tagInfo.TagId, tagTask.NeedNum, lEDColor); if(resultException == default ) @@ -81,6 +79,13 @@ public class LightElTag(AppElTagTaskDao tagTaskDao, AtopOperation atopOperation, return; } ConsoleLog.Warning($"【警告】点亮电子标签失败,点位:{tagTask.Location},数据:{tagTask.NeedNum},载具号:{tagTask.VehicleNo},标签号:{tagInfo.TagId},异常信息:{resultException.Message}"); + tagTaskDao.Update(new AppElTagTask + { + TaskId = tagTask.TaskId, + TaskStatus = (int)ElTagTaskStatusEnum.Error, + ConfirmTime = DateTime.Now, + Remark = resultException.Message + }); } diff --git a/WcsMain/Business/CirculationTask/Stacker/ExeTaskDoubleFork.cs b/WcsMain/Business/CirculationTask/Stacker/ExeTaskDoubleFork.cs index a90d067..d5e6a40 100644 --- a/WcsMain/Business/CirculationTask/Stacker/ExeTaskDoubleFork.cs +++ b/WcsMain/Business/CirculationTask/Stacker/ExeTaskDoubleFork.cs @@ -28,39 +28,34 @@ public class ExeTaskDoubleFork( [Circulation("执行堆垛机任务")] public bool ExecuteStackerTask() { - List tasks = []; foreach (var stacker in CommonData.AppStackers.Open()) { - tasks.Add(Task.Factory.StartNew(() => + var stackerUseStatus = stackerOperation.StackerCanUse(stacker.StackerId, out int plcId, out int spare1); + if (stackerUseStatus == StackerUseStatusEnum.Free) { - var stackerUseStatus = stackerOperation.StackerCanUse(stacker.StackerId, out int plcId, out int spare1); - if (stackerUseStatus == StackerUseStatusEnum.Free) - { - /* 空闲时正常执行任务 */ - // 移库 - bool exeMoveTask = ExecuteMoveTask(stacker.StackerId); - if (exeMoveTask) return; - // 出库 - bool exeOutTask = ExecuteOutTask(stacker.StackerId); - if (exeOutTask) return; - // 入库 - bool exeInTask = ExecuteInTask(stacker.StackerId); - if (exeInTask) return; - // 拣选 - //bool exePickTask = ExecutePickTask(stacker.StackerId); - //if (exePickTask) return; - } - if (stackerUseStatus == StackerUseStatusEnum.waitTask) - { - /* 重复入库时执行任务 */ - bool exeDoubleInTask = ExecuteDoubleInTask(stacker.StackerId, plcId, 1); - if (exeDoubleInTask) return; - exeDoubleInTask = ExecuteDoubleInTask(stacker.StackerId, spare1, 2); - if (exeDoubleInTask) return; - } - })); + /* 空闲时正常执行任务 */ + // 移库 + bool exeMoveTask = ExecuteMoveTask(stacker.StackerId); + if (exeMoveTask) continue; + // 出库 + bool exeOutTask = ExecuteOutTask(stacker.StackerId); + if (exeOutTask) continue; + // 入库 + bool exeInTask = ExecuteInTask(stacker.StackerId); + if (exeInTask) continue; + // 拣选 + //bool exePickTask = ExecutePickTask(stacker.StackerId); + //if (exePickTask) return; + } + if (stackerUseStatus == StackerUseStatusEnum.waitTask) + { + /* 重复入库时执行任务 */ + bool exeDoubleInTask = ExecuteDoubleInTask(stacker.StackerId, plcId, 1); + if (exeDoubleInTask) continue; + exeDoubleInTask = ExecuteDoubleInTask(stacker.StackerId, spare1, 2); + if (exeDoubleInTask) continue; + } } - Task.WaitAll([.. tasks]); return true; } diff --git a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/LoginGetData.cs b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/LoginGetData.cs index a5604ff..008e0c5 100644 --- a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/LoginGetData.cs +++ b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/LoginGetData.cs @@ -35,19 +35,19 @@ public class LoginGetData(WmsWebApiPost wmsWebApiPost) : IBaseGetData public void ReadSuccess(string? disPlayName, string msg, string? area, AppRouterMethod routerMethodData) { /* 发送 WMS 请求入库 */ - //ApplyInRequest applyInRequest = new(area, msg, msg); - //var postResult = wmsWebApiPost.HttpPost(applyInRequest, CommonData.AppApiBaseInfos.GetAddress("ApplyEnterApiAddress") ?? ""); - //if(!postResult.IsSend || postResult.ResponseEntity == default) - //{ - // ConsoleLog.Exception($"【异常】注册口:{area} 箱码:{msg} 请求入库发生异常,异常信息:{postResult.RequestException}"); - // return; - //} - //if( postResult.ResponseEntity.Code == 0) - //{ - // ConsoleLog.Success($"注册口:{area} 箱码:{msg} 请求入库成功 {postResult.ResponseEntity.Message}"); - // return; - //} - //ConsoleLog.Warning($"【警告】注册口:{area} 箱码:{msg} 请求入库失败,信息:{postResult.ResponseEntity.Message}"); - //return; + ApplyInRequest applyInRequest = new(area, msg, msg); + var postResult = wmsWebApiPost.HttpPost(applyInRequest, CommonData.AppApiBaseInfos.GetAddress("ApplyEnterApiAddress") ?? "", 2000); + if (!postResult.IsSend || postResult.ResponseEntity == default) + { + ConsoleLog.Exception($"【异常】注册口:{area} 箱码:{msg} 请求入库发生异常,异常信息:{postResult.RequestException}"); + return; + } + if (postResult.ResponseEntity.Code == 0) + { + ConsoleLog.Success($"注册口:{area} 箱码:{msg} 请求入库成功 {postResult.ResponseEntity.Message}"); + return; + } + ConsoleLog.Warning($"【警告】注册口:{area} 箱码:{msg} 请求入库失败,信息:{postResult.ResponseEntity.Message}"); + return; } } diff --git a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/Pick1StandOutC3.cs b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/Pick1StandOutC3.cs index ea18709..86b6a9f 100644 --- a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/Pick1StandOutC3.cs +++ b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/Pick1StandOutC3.cs @@ -1,4 +1,6 @@ -using WcsMain.Business.Convey.HistoryDataHandler.HisGetData.I; +using WcsMain.ApiClient.DataEntity.WmsEntity; +using WcsMain.Business.Convey.HistoryDataHandler.HisGetData.I; +using WcsMain.Common; using WcsMain.DataBase.Dao; using WcsMain.DataBase.TableEntity; using WcsMain.DataService; @@ -6,6 +8,7 @@ using WcsMain.Enum.Convey; using WcsMain.EquipOperation.Convey; using WcsMain.EquipOperation.Entity; using WcsMain.ExtendMethod; +using WcsMain.Plugins; namespace WcsMain.Business.Convey.HistoryDataHandler.HisGetData; @@ -15,7 +18,7 @@ namespace WcsMain.Business.Convey.HistoryDataHandler.HisGetData; /// /// /// -public class Pick1StandOutC3(ConveyOperation conveyOperation, DataBaseData dataBaseData, AppConveyTaskDao conveyTaskDao) : IBaseGetData +public class Pick1StandOutC3(ConveyOperation conveyOperation, DataBaseData dataBaseData, AppConveyTaskDao conveyTaskDao, WmsWebApiPost wmsWebApiPost) : IBaseGetData { /// @@ -49,6 +52,51 @@ public class Pick1StandOutC3(ConveyOperation conveyOperation, DataBaseData dataB public void ReadSuccess(string? disPlayName, string msg, string? area, AppRouterMethod routerMethodData) { int plcId = dataBaseData.GetNewPlcTaskId() ?? StaticData.StaticInt.ErrPlcId; // 获取一个 plcId + // 调用注册查看有没有剩余任务 + RequestBackRequest applyInRequest = new(msg); + var postResult = wmsWebApiPost.HttpPost(applyInRequest, CommonData.AppApiBaseInfos.GetAddress("RequestBackRequest") ?? "", 2000); + if (!postResult.IsSend || postResult.ResponseEntity == default) + { + ConsoleLog.Exception($"【异常】拣选站台出口:{area} 箱码:{msg} 请求入库发生异常,异常信息:{postResult.RequestException}"); + 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; + } + if (postResult.ResponseEntity.Code == 0) + { + ConsoleLog.Success($"拣选站台出口:{area} 箱码:{msg} 请求入库成功 {postResult.ResponseEntity.Message}"); + // 给通行信号,同时将未完成的拣选任务全部结束 + ConveyPLCTask plcTask = new(plcId, (short)ConveyRouterEnum.RightMove); + string errText = conveyOperation.WriteTask(area, plcTask); + if (string.IsNullOrEmpty(errText)) + { + ConsoleLog.Success($"一区出口:{area} 箱码:{msg},写入PLC成功,{plcTask}"); + } + else + { + ConsoleLog.Warning($"【警告】一区出口:{area} 箱码:{msg},写入PLC失败,{plcTask},信息:{errText}"); + } + // 更新拣选站台任务 + List? notCompleteConveyTasks = conveyTaskDao.Query(new AppConveyTask { VehicleNo = msg, TaskStatus = (int)ConveyTaskStatusEnum.create }); + if (notCompleteConveyTasks != null && notCompleteConveyTasks.Count > 0) + { + foreach (var notCompleteConveyTask in notCompleteConveyTasks) + { + notCompleteConveyTask.TaskStatus = (int)ConveyTaskStatusEnum.arrive; + notCompleteConveyTask.ArriveLocation = "一区回库口自动完成"; + notCompleteConveyTask.CompleteTime = DateTime.Now; + } + conveyTaskDao.Update([.. notCompleteConveyTasks]); // 更新任务状态 + } + return; + } + /* 判断条码有没有拣选任务 */ List? conveyTasks = conveyTaskDao.Query(new AppConveyTask { VehicleNo = msg, TaskStatus = (int)ConveyTaskStatusEnum.create }); if (conveyTasks == default) diff --git a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/Pick2StandOutC4.cs b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/Pick2StandOutC4.cs index 6f6c612..67dd37b 100644 --- a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/Pick2StandOutC4.cs +++ b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/Pick2StandOutC4.cs @@ -1,4 +1,5 @@ -using WcsMain.Business.Convey.HistoryDataHandler.HisGetData.I; +using WcsMain.ApiClient.DataEntity.WmsEntity; +using WcsMain.Business.Convey.HistoryDataHandler.HisGetData.I; using WcsMain.Common; using WcsMain.DataBase.Dao; using WcsMain.DataBase.TableEntity; @@ -7,6 +8,7 @@ using WcsMain.Enum.Convey; using WcsMain.EquipOperation.Convey; using WcsMain.EquipOperation.Entity; using WcsMain.ExtendMethod; +using WcsMain.Plugins; namespace WcsMain.Business.Convey.HistoryDataHandler.HisGetData; @@ -16,7 +18,7 @@ namespace WcsMain.Business.Convey.HistoryDataHandler.HisGetData; /// /// /// -public class Pick2StandOutC4(ConveyOperation conveyOperation, DataBaseData dataBaseData, AppConveyTaskDao conveyTaskDao) : IBaseGetData +public class Pick2StandOutC4(ConveyOperation conveyOperation, DataBaseData dataBaseData, AppConveyTaskDao conveyTaskDao, WmsWebApiPost wmsWebApiPost) : IBaseGetData { /// @@ -50,6 +52,51 @@ public class Pick2StandOutC4(ConveyOperation conveyOperation, DataBaseData dataB public void ReadSuccess(string? disPlayName, string msg, string? area, AppRouterMethod routerMethodData) { int plcId = dataBaseData.GetNewPlcTaskId() ?? StaticData.StaticInt.ErrPlcId; // 获取一个 plcId + // 调用注册查看有没有剩余任务 + RequestBackRequest applyInRequest = new(msg); + var postResult = wmsWebApiPost.HttpPost(applyInRequest, CommonData.AppApiBaseInfos.GetAddress("RequestBackRequest") ?? "", 2000); + if (!postResult.IsSend || postResult.ResponseEntity == default) + { + ConsoleLog.Exception($"【异常】拣选站台出口:{area} 箱码:{msg} 请求入库发生异常,异常信息:{postResult.RequestException}"); + 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; + } + if (postResult.ResponseEntity.Code == 0) + { + ConsoleLog.Success($"拣选站台出口:{area} 箱码:{msg} 请求入库成功 {postResult.ResponseEntity.Message}"); + // 给通行信号,同时将未完成的拣选任务全部结束 + ConveyPLCTask plcTask = new(plcId, (short)ConveyRouterEnum.RightMove); + string errText = conveyOperation.WriteTask(area, plcTask); + if (string.IsNullOrEmpty(errText)) + { + ConsoleLog.Success($"二区出口:{area} 箱码:{msg},写入PLC成功,{plcTask}"); + } + else + { + ConsoleLog.Warning($"【警告】二区出口:{area} 箱码:{msg},写入PLC失败,{plcTask},信息:{errText}"); + } + // 更新拣选站台任务 + List? notCompleteConveyTasks = conveyTaskDao.Query(new AppConveyTask { VehicleNo = msg, TaskStatus = (int)ConveyTaskStatusEnum.create }); + if (notCompleteConveyTasks != null && notCompleteConveyTasks.Count > 0) + { + foreach (var notCompleteConveyTask in notCompleteConveyTasks) + { + notCompleteConveyTask.TaskStatus = (int)ConveyTaskStatusEnum.arrive; + notCompleteConveyTask.ArriveLocation = "二区回库口自动完成"; + notCompleteConveyTask.CompleteTime = DateTime.Now; + } + conveyTaskDao.Update([.. notCompleteConveyTasks]); // 更新任务状态 + } + return; + } + /* 判断条码有没有拣选任务 */ List? conveyTasks = conveyTaskDao.Query(new AppConveyTask { VehicleNo = msg, TaskStatus = (int)ConveyTaskStatusEnum.create }); if (conveyTasks == default) diff --git a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInErr.cs b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInErr.cs index a987f8b..54c4f6d 100644 --- a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInErr.cs +++ b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInErr.cs @@ -98,7 +98,7 @@ public class StackerInErr(ConveyOperation conveyOperation, DataBaseData dataBase ConsoleLog.Warning($"【警告】入库分流:{area} 箱码:{msg},写入PLC失败,{plcTask},信息:{errText}"); return; } - ConveyRouterEnum router = (ConveyRouterEnum)(locationDetail.TunnelNo ?? 0); + ConveyRouterEnum router = (ConveyRouterEnum)(6 - locationDetail.TunnelNo ?? 0); ConsoleLog.Success($"入库分流:{area} 箱码:{msg} 终点:{wcsTask.Destination} 巷道:{locationDetail.TunnelNo}"); ConveyPLCTask plcTaskOk = new(plcId, (short)router); string errTextOk = conveyOperation.WriteTask(area, plcTaskOk); diff --git a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInSpliter.cs b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInSpliter.cs index 93212ba..16f7fd0 100644 --- a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInSpliter.cs +++ b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInSpliter.cs @@ -97,7 +97,7 @@ public class StackerInSpliter(ConveyOperation conveyOperation, DataBaseData data ConsoleLog.Warning($"【警告】入库分流:{area} 箱码:{msg},写入PLC失败,{plcTask},信息:{errText}"); return; } - ConveyRouterEnum router = (ConveyRouterEnum)(locationDetail.TunnelNo ?? 0); + ConveyRouterEnum router = (ConveyRouterEnum)(6 - locationDetail.TunnelNo ?? 0); ConsoleLog.Success($"入库分流:{area} 箱码:{msg} 终点:{wcsTask.Destination} 巷道:{locationDetail.TunnelNo}"); ConveyPLCTask plcTaskOk = new(plcId, (short)router); string errTextOk = conveyOperation.WriteTask(area, plcTaskOk); diff --git a/WcsMain/DataBase/Dao/AppWmsTaskDao.cs b/WcsMain/DataBase/Dao/AppWmsTaskDao.cs index 7fc174a..17d9322 100644 --- a/WcsMain/DataBase/Dao/AppWmsTaskDao.cs +++ b/WcsMain/DataBase/Dao/AppWmsTaskDao.cs @@ -351,39 +351,6 @@ public class AppWmsTaskDao return result.Data ? string.Empty : result.ErrorMessage; } - /// - /// 完成任务 ---- 完成最后一个任务 - /// - /// - /// - /// - public string CompleteTaskWithTaskInfo(AppWcsTask wcsTaskUpdateEntity, AppWmsTask wmsTaskUpdateEntity) - { - /* - 需要执行的操作 - 1、完成WMS任务表状态 - 2、删除WCS任务表数据 - */ - var result = CommonTool.DbServe.Ado.UseTran(() => - { - // -- 更新wms任务状态 - CommonTool.DbServe - .Updateable(wmsTaskUpdateEntity) - .IgnoreColumns(ignoreAllNullColumns: true) - .ExecuteCommand(); - // -- 更新wcs任务表状态 - CommonTool.DbServe - .Updateable(wcsTaskUpdateEntity) - .IgnoreColumns(ignoreAllNullColumns: true) - .ExecuteCommand(); - // -- 备份WCS任务表 - CommonTool.DbServe.Ado.ExecuteCommand( - $"insert into tbl_app_wcs_task_bak select * from tbl_app_wcs_task where task_id = '{wmsTaskUpdateEntity.TaskId}'"); - // -- 删除WCS任务表 - CommonTool.DbServe.Deleteable().Where(w => w.TaskId == wmsTaskUpdateEntity.TaskId).ExecuteCommand(); - }); - return result.Data ? string.Empty : result.ErrorMessage; - } /// diff --git a/WcsMain/DataBase/MixDao/TaskDao.cs b/WcsMain/DataBase/MixDao/TaskDao.cs index 8981d5e..b407fcf 100644 --- a/WcsMain/DataBase/MixDao/TaskDao.cs +++ b/WcsMain/DataBase/MixDao/TaskDao.cs @@ -1,4 +1,6 @@ -using WcsMain.Common; +using System.Threading.Tasks; +using WcsMain.Common; +using WcsMain.DataBase.Dao; using WcsMain.DataBase.TableEntity; using WcsMain.Enum.Stacker; using WcsMain.ExtendMethod; @@ -183,16 +185,24 @@ public class TaskDao .ExecuteCommand(); if (wcsTask.IsLastTask()) { - /* 更新WMS任务表状态 */ - CommonTool.DbServe.Updateable(new AppWmsTask - { - TaskId = wcsTask.TaskId, - TaskStatus = (int)WmsTaskStatusEnum.complete, - EndTime = dateTime, - TaskMsg = msg - }) - .IgnoreColumns(ignoreAllNullColumns: true) - .ExecuteCommand(); + // -- 更新wms任务状态 + CommonTool.DbServe + .Updateable(new AppWmsTask() + { TaskId = wcsTask.TaskId, TaskStatus = (int)WmsTaskStatusEnum.complete, EndTime = DateTime.Now, TaskMsg = msg }) + .IgnoreColumns(ignoreAllNullColumns: true) + .ExecuteCommand(); + // -- 更新wcs任务表状态 + CommonTool.DbServe + .Updateable(new AppWcsTask() + { TaskId = wcsTask.TaskId, TaskStatus = (int)WcsTaskStatusEnum.complete, Remark = msg, CompleteTime = DateTime.Now }) + .UpdateColumns(u => new { u.TaskStatus, u.Remark, u.CompleteTime }).WhereColumns(w => new { w.TaskId }) + .ExecuteCommand(); + // -- 备份WCS任务表 + CommonTool.DbServe.Ado.ExecuteCommand( + $"insert into tbl_app_wcs_task_bak select * from tbl_app_wcs_task where task_id = '{wcsTask.TaskId}'"); + // -- 删除WCS任务表 + CommonTool.DbServe.Deleteable().Where(w => w.TaskId == wcsTask.TaskId).ExecuteCommand(); + } }); return result.Data ? string.Empty : result.ErrorException.Message; diff --git a/WcsMain/ElTag/Atop/BaseOprDataHandler.cs b/WcsMain/ElTag/Atop/BaseOprDataHandler.cs index baf0e4c..e3c9eb8 100644 --- a/WcsMain/ElTag/Atop/BaseOprDataHandler.cs +++ b/WcsMain/ElTag/Atop/BaseOprDataHandler.cs @@ -1,4 +1,6 @@ using System.Text.RegularExpressions; +using WcsMain.ApiClient.DataEntity.WmsEntity; +using WcsMain.Common; using WcsMain.DataBase.Dao; using WcsMain.DataBase.TableEntity; using WcsMain.ElTag.Atop.AtopEnum; @@ -6,6 +8,7 @@ using WcsMain.ElTag.Atop.Entity; using WcsMain.Enum.ElTag; using WcsMain.EquipOperation.ElTag; using WcsMain.ExtendMethod; +using WcsMain.Plugins; using WcsMain.WcsAttribute.AutoFacAttribute; namespace WcsMain.ElTag.Atop; @@ -14,13 +17,9 @@ namespace WcsMain.ElTag.Atop; /// 电子标签收到数据的数据处理类 /// [Component] -public class BaseOprDataHandler(AppElTagLocationDao tagBaseDao, AppElTagTaskDao tagTaskDao, AtopOperation atopOperation) +public class BaseOprDataHandler(AppElTagLocationDao tagBaseDao, AppElTagTaskDao tagTaskDao, AtopOperation atopOperation, WmsWebApiPost wmsWebApiPost) { - private readonly AppElTagLocationDao _tagBaseDao = tagBaseDao; - private readonly AppElTagTaskDao _tagTaskDao = tagTaskDao; - private readonly AtopOperation _atopOperation = atopOperation; - /// /// 收到数据时的处理方法 /// @@ -59,11 +58,11 @@ public class BaseOprDataHandler(AppElTagLocationDao tagBaseDao, AppElTagTaskDao { // _atopOperation.ShowMsgOnly(tcpServe.ControllerDisplayName, tcpServe.TagId, tcpServe.Data); // 重新点亮标签,仅显示字符 /* 找出这个标签最新点亮的那条记录 */ - List? eltags = _tagBaseDao.Query(new AppElTagLocation { ControllerDisplayName = tcpServe.ControllerDisplayName, TagId = tcpServe.TagId }); + List? eltags = tagBaseDao.Query(new AppElTagLocation { ControllerDisplayName = tcpServe.ControllerDisplayName, TagId = tcpServe.TagId }); if(eltags == default) { ConsoleLog.Exception($"【异常】电子标签确认查询数据库标签信息失败,与数据库服务器连连接中断,控制器:{tcpServe.ControllerDisplayName},标签号:{tcpServe.TagId},数据:{tcpServe.Data}"); - _atopOperation.ShowMsg(tcpServe.ControllerDisplayName, tcpServe.TagId, tcpServe.Data); // 重新点亮标签 + atopOperation.ShowMsg(tcpServe.ControllerDisplayName, tcpServe.TagId, tcpServe.Data); // 重新点亮标签 return; } if(eltags.Count < 1) @@ -81,11 +80,11 @@ public class BaseOprDataHandler(AppElTagLocationDao tagBaseDao, AppElTagTaskDao return; } /* 获取该任务号对应的任务 */ - List? tagTasks = _tagTaskDao.Query(new AppElTagTask { TaskId = taskId }); + List? tagTasks = tagTaskDao.Query(new AppElTagTask { TaskId = taskId }); if(tagTasks == default) { ConsoleLog.Exception($"【异常】电子标签确认查询数据库任务失败,与数据库服务器连连接中断,控制器:{tcpServe.ControllerDisplayName},标签号:{tcpServe.TagId},数据:{tcpServe.Data}"); - _atopOperation.ShowMsg(tcpServe.ControllerDisplayName, tcpServe.TagId, tcpServe.Data); // 重新点亮标签 + atopOperation.ShowMsg(tcpServe.ControllerDisplayName, tcpServe.TagId, tcpServe.Data); // 重新点亮标签 return; } if (tagTasks.Count < 1) @@ -96,12 +95,37 @@ public class BaseOprDataHandler(AppElTagLocationDao tagBaseDao, AppElTagTaskDao var tagTask = tagTasks[0]; // 获取到的任务 int pickNum = Regex.Replace(tcpServe.Data!, "\\D", "").IsNumber() ? Convert.ToInt32(tcpServe.Data) : -1; /* 更新任务状态为确认 */ - _tagTaskDao.Update(new AppElTagTask() { TaskId = tagTask.TaskId, ConfirmTime = DateTime.Now, TaskStatus = (int)ElTagTaskStatusEnum.Confirm, PickNum = pickNum, Remark = "标签确认", OffTime = DateTime.Now }); + tagTaskDao.Update(new AppElTagTask() { TaskId = tagTask.TaskId, ConfirmTime = DateTime.Now, TaskStatus = (int)ElTagTaskStatusEnum.Confirm, PickNum = pickNum, Remark = "标签确认", OffTime = DateTime.Now }); /* 更新绑定的库位信息为空 */ - _tagBaseDao.ResetLocation(eltag.Location!); + tagBaseDao.ResetLocation(eltag.Location!); ConsoleLog.Success($"电子标签确认按钮按下,标签任务号:{tagTask.TaskId} 已经确认,箱号:{tagTask.VehicleNo},拣选数量:{tagTask.NeedNum}({pickNum}) 控制器:{tcpServe.ControllerDisplayName},标签号:{tcpServe.TagId},数据:{tcpServe.Data}"); /* 发送WMS电子标签任务完成 */ - // [TODO] + ElTagComfirmButtonClickRequest elTagComfirmButtonClickRequest = new() + { + TaskGroup = tagTask.TaskGroup, + TaskType = tagTask.TaskType, + VehicleNo = tagTask.VehicleNo, + OrderId = tagTask.OrderId, + TaskId = tagTask.TaskId, + Location = tagTask.Location, + GoodsId = tagTask.GoodsId, + GoodsName = tagTask.GoodsName, + NeedNum = tagTask.NeedNum, + ConfirmNum = pickNum + }; + var postResult = wmsWebApiPost.HttpPost(elTagComfirmButtonClickRequest, CommonData.AppApiBaseInfos.GetAddress("GetETaskFeedBack") ?? "", 2000); + if (!postResult.IsSend || postResult.ResponseEntity == default) + { + ConsoleLog.Exception($"【异常】电子标签按钮按下:标签任务号:{tagTask.TaskId} 已经确认,箱号:{tagTask.VehicleNo},拣选数量:{tagTask.NeedNum}({pickNum}) 请求WMS发生异常,异常信息:{postResult.RequestException}"); + return; + } + if (postResult.ResponseEntity.Code == 0) + { + ConsoleLog.Success($"电子标签按钮按下:标签任务号:{tagTask.TaskId} 已经确认,箱号:{tagTask.VehicleNo},拣选数量:{tagTask.NeedNum}({pickNum}) 请求WMS成功 {postResult.ResponseEntity.Message}"); + return; + } + ConsoleLog.Warning($"【警告】电子标签按钮按下:标签任务号:{tagTask.TaskId} 已经确认,箱号:{tagTask.VehicleNo},拣选数量:{tagTask.NeedNum}({pickNum}) 请求WMS失败,信息:{postResult.ResponseEntity.Message}"); + return; } diff --git a/WcsMain/ElTag/Atop/ConnectOprServe.cs b/WcsMain/ElTag/Atop/ConnectOprServe.cs index 6c11aee..298200e 100644 --- a/WcsMain/ElTag/Atop/ConnectOprServe.cs +++ b/WcsMain/ElTag/Atop/ConnectOprServe.cs @@ -66,17 +66,20 @@ public class ConnectOprServe(AppTcpDao tcpDao, BaseOprDataHandler baseOprDataHan /// public void ConnectSuccess(TcpServeConnectionData tcpServe) { - ConsoleLog.Success($"电子标签:{tcpServe.TcpServe!.TcpIp} 连接成功"); - _atopOperation.BlinkingAll(tcpServe); - /* 点亮数据库中正在点亮的标签 */ - List? tasks = _tagTaskDao.Query(new AppElTagTask { TaskStatus = (int)ElTagTaskStatusEnum.Lighting }); - if (tasks == default) + Task.Factory.StartNew(() => { - ConsoleLog.Exception("【异常】查询 电子标签 任务失败,数据库连接异常"); - Thread.Sleep(5000); - return; - } - tasks.ForEach(LightTask); + ConsoleLog.Success($"电子标签:{tcpServe.TcpServe!.TcpIp} 连接成功"); + _atopOperation.BlinkingAll(tcpServe); + /* 点亮数据库中正在点亮的标签 */ + List? tasks = _tagTaskDao.Query(new AppElTagTask { TaskStatus = (int)ElTagTaskStatusEnum.Lighting }); + if (tasks == default) + { + ConsoleLog.Exception("【异常】查询 电子标签 任务失败,数据库连接异常"); + Thread.Sleep(5000); + return; + } + tasks.ForEach(LightTask); + }); } /// diff --git a/WcsMain/EquipOperation/Convey/ConveyOperation.cs b/WcsMain/EquipOperation/Convey/ConveyOperation.cs index 43f6d66..86e9486 100644 --- a/WcsMain/EquipOperation/Convey/ConveyOperation.cs +++ b/WcsMain/EquipOperation/Convey/ConveyOperation.cs @@ -178,18 +178,6 @@ public class ConveyOperation public string WriteTask(string? equipmentId, int plcId, short router) => WriteTask(equipmentId, new ConveyPLCTask(plcId, router)); - /// - /// 释放指定位置的箱子 - /// - /// - /// - public string DisposeVehicle(string? conveyId) - { - if (!CommonData.IsConnectPlc || CommonTool.Siemens == default) return "PLC尚未连接。"; - var (writeResult, _) = CommonTool.Siemens.WritePlcWhithName($"箱式线释放{conveyId}", (short)1); - return writeResult.Success ? string.Empty : writeResult.Message ?? "写入失败,未知原因"; - } - /// /// 读取拣选站台释放的信号 @@ -218,122 +206,4 @@ public class ConveyOperation return string.Empty; } - - - - /// - /// 获取箱式线出库站台状态 - /// - /// - /// - public bool GetOutConveyStatus(string? standId) - { - if (!CommonData.IsConnectPlc || CommonTool.Siemens == default) - { - // 未连接PLC - return false; - } - var readGoodsExistResult = CommonTool.Siemens.ReadBoolWithName($"站台货物检测{standId}"); - if (!readGoodsExistResult.Success || readGoodsExistResult.Value) // 读取失败,或者有货 就不允许出库 - { - return false; - } - var readAGVExistResult = CommonTool.Siemens.ReadBoolWithName($"站台AGV检测{standId}"); - if (!readAGVExistResult.Success || readAGVExistResult.Value) // 读取失败,或者有AGV 就不允许出库 - { - return false; - } - if (!readGoodsExistResult.Value && !readAGVExistResult.Value) // 无货并且没有AGV才能出库 - { - return true; - } - return false; - } - - - // 10.40.200.210 - - /// - /// 获取入库站台状态 --- 是否可以入库 - /// - /// - /// - public bool GetInConveyStatus(string? standId) - { - if (!CommonData.IsConnectPlc || CommonTool.Siemens == default) - { - // 未连接PLC - return false; - } - if (string.IsNullOrEmpty(standId)) { return false; } - if (standId.StartsWith('P')) - { - var readGoodsNeedIn = CommonTool.Siemens.ReadBoolWithName($"站台请求入库{standId}"); - if (!readGoodsNeedIn.Success || !readGoodsNeedIn.Value) // 读取失败,或者没有货 就不允许入库 - { - return false; - } - return true; - } - var readGoodsExistResult = CommonTool.Siemens.ReadBoolWithName($"站台货物检测{standId}"); - if (!readGoodsExistResult.Success || !readGoodsExistResult.Value) // 读取失败,或者没有货 就不允许入库 - { - return false; - } - var readAGVExistResult = CommonTool.Siemens.ReadBoolWithName($"站台AGV检测{standId}"); - if (!readAGVExistResult.Success || readAGVExistResult.Value) // 读取失败,或者有AGV 就不允许入库 - { - return false; - } - if (readGoodsExistResult.Value && !readAGVExistResult.Value) // 有货并且没有AGV才能入库 - { - return true; - } - return false; - } - - /// - /// 获取箱式线拣选站台状态 - /// - /// - /// - public bool GetPickConveyStatus(string? standId) - { - if (!CommonData.IsConnectPlc || CommonTool.Siemens == default) - { - // 未连接PLC - return false; - } - var readGoodsExistResult = CommonTool.Siemens.ReadBoolWithName($"站台货物检测{standId}"); - if (!readGoodsExistResult.Success) // 读取失败,或者有货 就不允许出库 - { - return false; - } - return !readGoodsExistResult.Value; - } - - /// - /// 获取输送机箱子号 - /// - /// - /// - public string GetStandCode(int stackerId) - { - if (!CommonData.IsConnectPlc || CommonTool.Siemens == default) - { - // 未连接PLC - return string.Empty; - } - var readResult1 = CommonTool.Siemens.ReadStringWithName($"箱式线入库载具号{stackerId}", 10, Encoding.ASCII); - if (!readResult1.Success) - { - // 读取失败 - return string.Empty; - } - // 返回读取到的任务号 - return Regex.Replace(readResult1.Value ?? "", "\\W", ""); - } - - - } \ No newline at end of file diff --git a/WcsMain/EquipOperation/ElTag/AtopOperation.cs b/WcsMain/EquipOperation/ElTag/AtopOperation.cs index 7eb403b..202ced0 100644 --- a/WcsMain/EquipOperation/ElTag/AtopOperation.cs +++ b/WcsMain/EquipOperation/ElTag/AtopOperation.cs @@ -68,6 +68,7 @@ public class AtopOperation return new Exception("必须的值为空,无法发送电子标签"); } byte[] elTagData = TagSendInfo.ShowValue(Convert.ToByte(tagId), value); + if (CommonTool.OprTcpClient == default) return new Exception("电子标签连接不存在"); var sendResult = CommonTool.OprTcpClient.Send(elTagData, controllerDisplayName); // 显示字符 //CommonTool.OprTcpClient.Send(TagSendInfo.SetValueKeepAlive(Convert.ToByte(tagId)), controllerDisplayName); // 使标签确认后仍然显示字符 CommonTool.OprTcpClient.Send(TagSendInfo.LedColor(Convert.ToByte(tagId), ledColor), controllerDisplayName); // 显示颜色 diff --git a/WcsMain/Plugins/WmsWebApiPost.cs b/WcsMain/Plugins/WmsWebApiPost.cs index b3391a4..d5ca325 100644 --- a/WcsMain/Plugins/WmsWebApiPost.cs +++ b/WcsMain/Plugins/WmsWebApiPost.cs @@ -1,6 +1,8 @@ using ApiTool; using WcsMain.Business.CommonAction; using WcsMain.Common; +using WcsMain.DataBase.Dao; +using WcsMain.DataBase.TableEntity; using WcsMain.ExtendMethod; using WcsMain.WcsAttribute.AutoFacAttribute; @@ -17,4 +19,5 @@ public class WmsWebApiPost : WebApiPost SetResponseAction(wmsApiResponseAction.WMSApiResponse); SetBaseUrl(CommonData.AppApiBaseInfos.GetAddress("WmsBaseApiAddress") ?? ""); } + } diff --git a/WcsMain/Program.cs b/WcsMain/Program.cs index ae92182..d12dc35 100644 --- a/WcsMain/Program.cs +++ b/WcsMain/Program.cs @@ -38,7 +38,7 @@ builder.Services.AddCors(options => }); }); -builder.WebHost.UseUrls(CommonData.Settings.UseUrls ?? ["http://*:890"]); // ַ appSettings.json ãĬֵ +builder.WebHost.UseUrls(CommonData.Settings.UseUrls ?? ["http://*:18990"]); // ַ appSettings.json ãĬֵ // ʹ autoFac 滻ע builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()); diff --git a/WcsMain/appsettings.json b/WcsMain/appsettings.json index 9c96cce..486d959 100644 --- a/WcsMain/appsettings.json +++ b/WcsMain/appsettings.json @@ -17,7 +17,7 @@ "ApiOnly": false, "Language": "zh-CN" }, - "UseUrls": [ "http://*:890" ] + "UseUrls": [ "http://*:18990" ] } }