From ce51fe383a0391161c045d482c867c49e8c4187d Mon Sep 17 00:00:00 2001 From: icewint Date: Tue, 6 Aug 2024 08:48:25 +0800 Subject: [PATCH] =?UTF-8?q?[important]=E6=B7=BB=E5=8A=A0=E6=8A=A5?= =?UTF-8?q?=E8=AD=A6=E4=BF=A1=E6=81=AF=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dto/WcsDto/Stacker/QueryErrInfoRequest.cs | 21 +++++++ .../WcsController/StackerController.cs | 7 +++ .../Service/WcsService/StackerService.cs | 18 +++++- .../CirculationTask/Convey/ReadScanCode.cs | 30 ++++++++++ .../Stacker/ExeTaskDoubleFork.cs | 2 +- WcsMain/DataBase/Dao/AppBaseErrDao.cs | 42 ++++++++++++++ WcsMain/DataBase/MixDao/TaskDao.cs | 2 +- WcsMain/DataBase/TableEntity/AppBaseErr.cs | 57 +++++++++++++++++++ WcsMain/appsettings.json | 2 +- 9 files changed, 177 insertions(+), 4 deletions(-) create mode 100644 WcsMain/ApiServe/Controllers/Dto/WcsDto/Stacker/QueryErrInfoRequest.cs create mode 100644 WcsMain/DataBase/Dao/AppBaseErrDao.cs create mode 100644 WcsMain/DataBase/TableEntity/AppBaseErr.cs diff --git a/WcsMain/ApiServe/Controllers/Dto/WcsDto/Stacker/QueryErrInfoRequest.cs b/WcsMain/ApiServe/Controllers/Dto/WcsDto/Stacker/QueryErrInfoRequest.cs new file mode 100644 index 0000000..1aab11e --- /dev/null +++ b/WcsMain/ApiServe/Controllers/Dto/WcsDto/Stacker/QueryErrInfoRequest.cs @@ -0,0 +1,21 @@ +using System.Text.Json.Serialization; + +namespace WcsMain.ApiServe.Controllers.Dto.WcsDto.Stacker; + + +public class QueryErrInfoRequest +{ + /// + /// 区域 + /// + [JsonPropertyName("area")] + public string? Area { get; set; } + + /// + /// 报警编号 + /// + [JsonPropertyName("errNo")] + public int? ErrNo { get; set; } + + +} diff --git a/WcsMain/ApiServe/Controllers/WcsController/StackerController.cs b/WcsMain/ApiServe/Controllers/WcsController/StackerController.cs index d7de04d..6ef1bbc 100644 --- a/WcsMain/ApiServe/Controllers/WcsController/StackerController.cs +++ b/WcsMain/ApiServe/Controllers/WcsController/StackerController.cs @@ -36,4 +36,11 @@ public class StackerController(StackerService stackerService) : ControllerBase [HttpPost("editStacker")] public WcsApiResponse EditStacker([FromBody] EditStackerRequest request) => stackerService.EditStacker(request); + /// + /// 查询故障详细信息 + /// + /// + [HttpPost("queryErrInfo")] + public WcsApiResponse QueryErrInfo([FromBody] QueryErrInfoRequest request) => stackerService.QueryErrInfo(request); + } \ No newline at end of file diff --git a/WcsMain/ApiServe/Service/WcsService/StackerService.cs b/WcsMain/ApiServe/Service/WcsService/StackerService.cs index 58e8bb3..11507a7 100644 --- a/WcsMain/ApiServe/Service/WcsService/StackerService.cs +++ b/WcsMain/ApiServe/Service/WcsService/StackerService.cs @@ -1,4 +1,5 @@ using DataCheck; +using Microsoft.VisualStudio.Web.CodeGenerators.Mvc.Dependency; using System.Collections.Generic; using WcsMain.ApiServe.Controllers.Dto; using WcsMain.ApiServe.Controllers.Dto.WcsDto.Stacker; @@ -11,7 +12,7 @@ using WcsMain.WcsAttribute.AutoFacAttribute; namespace WcsMain.ApiServe.Service.WcsService; [Service] -public class StackerService(AppStackerDao stackerDao, StackerOperation stackerOperation) +public class StackerService(AppStackerDao stackerDao, StackerOperation stackerOperation, AppBaseErrDao baseErrDao) { /// /// 查询所有的 堆垛机信息 @@ -127,4 +128,19 @@ public class StackerService(AppStackerDao stackerDao, StackerOperation stackerOp } + /// + /// 查询对应的报警信息 + /// + /// + /// + public WcsApiResponse QueryErrInfo(QueryErrInfoRequest request) + { + var queryResult = baseErrDao.Select(new AppBaseErr { Area = request.Area, ErrNo = request.ErrNo }); + if (queryResult == default) return WcsApiResponseFactory.DataBaseErr(); + if (queryResult.Count() == 0) return WcsApiResponseFactory.Fail(msg:"没有对应的报警资料"); + var errInfo = queryResult[0]; + return WcsApiResponseFactory.Success(errInfo); + } + + } diff --git a/WcsMain/Business/CirculationTask/Convey/ReadScanCode.cs b/WcsMain/Business/CirculationTask/Convey/ReadScanCode.cs index f442459..308b4d4 100644 --- a/WcsMain/Business/CirculationTask/Convey/ReadScanCode.cs +++ b/WcsMain/Business/CirculationTask/Convey/ReadScanCode.cs @@ -42,6 +42,7 @@ public class ReadScanCode(AppRouterMethodDao routerMethodDao, ConveyOperation co return; // 不读了,估计网断了 } if (scanOk != (short)TrueFalseEnum.TRUE) { return; } + if (!CheckCode(code, router.Area ?? "")) { return; } string clearErrText = conveyOperation.ClearScanStatus(router.Area); if (!string.IsNullOrEmpty(clearErrText)) { @@ -60,6 +61,35 @@ public class ReadScanCode(AppRouterMethodDao routerMethodDao, ConveyOperation co } + Dictionary? codeData; + DateTime firstTime = DateTime.Now; + + private bool CheckCode(string codeIn, string area) + { + string code = codeIn + area; + if(codeData == default) codeData = []; + if ((DateTime.Now - firstTime).TotalSeconds > 5.5) + { + codeData.Clear(); + } + firstTime = DateTime.Now; + if (!codeData.TryGetValue(code, out DateTime value)) + { + value = DateTime.Now; + codeData.Add(code, value); + return true; + } + DateTime dateTime = value; + TimeSpan timeSpan = DateTime.Now - dateTime; + if(timeSpan.TotalSeconds > 5) + { + codeData[code] = dateTime; + return true; + } + return false; + } + + diff --git a/WcsMain/Business/CirculationTask/Stacker/ExeTaskDoubleFork.cs b/WcsMain/Business/CirculationTask/Stacker/ExeTaskDoubleFork.cs index d5e6a40..f9ef14c 100644 --- a/WcsMain/Business/CirculationTask/Stacker/ExeTaskDoubleFork.cs +++ b/WcsMain/Business/CirculationTask/Stacker/ExeTaskDoubleFork.cs @@ -83,7 +83,7 @@ public class ExeTaskDoubleFork( if (forkStatus.Length <= i || forkStatus[i] != '1') continue; // 获取数据失败或者货叉未开启 var code = codes[i]; if (string.IsNullOrEmpty(code)) continue; // 检查条码是否为空 - ConsoleLog.Warning($"【警告】{stackerId} 号堆垛机,入库位置:{i + 1} 返回:{code}"); + //ConsoleLog.Warning($"{stackerId} 号堆垛机,入库位置:{i + 1} 返回:{code}"); if (code == "NoRead") // 检查条码是否为 NoRead { /* 检查卸货站台是否允许卸货 */ diff --git a/WcsMain/DataBase/Dao/AppBaseErrDao.cs b/WcsMain/DataBase/Dao/AppBaseErrDao.cs new file mode 100644 index 0000000..de98315 --- /dev/null +++ b/WcsMain/DataBase/Dao/AppBaseErrDao.cs @@ -0,0 +1,42 @@ +using WcsMain.Common; +using WcsMain.DataBase.TableEntity; +using WcsMain.WcsAttribute.AutoFacAttribute; + +namespace WcsMain.DataBase.Dao; + +[Component] +public class AppBaseErrDao +{ + + /// + /// 条件查询 + /// + /// + /// + public List? Select(AppBaseErr appBaseErr) + { + try + { + var sqlFuc = CommonTool.DbServe.Queryable() + .WhereIF(appBaseErr.Area != default, w => w.Area == appBaseErr.Area) + .WhereIF(appBaseErr.ErrNo != default, w => w.ErrNo == appBaseErr.ErrNo) + .WhereIF(appBaseErr.ErrType != default, w => w.ErrType == appBaseErr.ErrType) + .WhereIF(appBaseErr.ErrMsg != default, w => w.ErrMsg == appBaseErr.ErrMsg) + .WhereIF(appBaseErr.Suggest != default, w => w.Suggest == appBaseErr.Suggest) + .WhereIF(appBaseErr.Remark != default, w => w.Remark == appBaseErr.Remark) + .OrderBy(o => new { o.Area, o.ErrNo }); + return sqlFuc.ToList(); + } + catch (Exception ex) + { + _ = ex; + return default; + } + } + + /// + /// 查询全部 + /// + /// + public List? Select() => Select(new AppBaseErr()); +} diff --git a/WcsMain/DataBase/MixDao/TaskDao.cs b/WcsMain/DataBase/MixDao/TaskDao.cs index b407fcf..785944f 100644 --- a/WcsMain/DataBase/MixDao/TaskDao.cs +++ b/WcsMain/DataBase/MixDao/TaskDao.cs @@ -38,7 +38,7 @@ public class TaskDao { TaskId = wcsTask.TaskId, TaskStatus = (int)WmsTaskStatusEnum.queuing, - StartTime = dateTime + //StartTime = dateTime }).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand(); } }); diff --git a/WcsMain/DataBase/TableEntity/AppBaseErr.cs b/WcsMain/DataBase/TableEntity/AppBaseErr.cs new file mode 100644 index 0000000..9294f5f --- /dev/null +++ b/WcsMain/DataBase/TableEntity/AppBaseErr.cs @@ -0,0 +1,57 @@ +using SqlSugar; +using System.Text.Json.Serialization; + +namespace WcsMain.DataBase.TableEntity; + +/// +/// 基础报警资料 +/// +[SugarTable("tbl_app_base_err")] +public class AppBaseErr +{ + /// + /// 区域 + /// + [SugarColumn(ColumnName = "area")] + [JsonPropertyName("area")] + public string? Area { get; set; } + + /// + /// 报警代码 + /// + [SugarColumn(ColumnName = "err_no")] + [JsonPropertyName("errNo")] + public int? ErrNo { get; set; } + + /// + /// 报警类型 + /// + [SugarColumn(ColumnName = "err_type")] + [JsonPropertyName("errType")] + public int? ErrType { get; set; } + + /// + /// 报警信息 + /// + [SugarColumn(ColumnName = "err_msg")] + [JsonPropertyName("errMsg")] + public string? ErrMsg { get; set; } + + /// + /// 建议 + /// + [SugarColumn(ColumnName = "suggest")] + [JsonPropertyName("suggest")] + public string? Suggest { get; set; } + + /// + /// 备注 + /// + [SugarColumn(ColumnName = "remark")] + [JsonPropertyName("remark")] + public string? Remark { get; set; } + + + + +} diff --git a/WcsMain/appsettings.json b/WcsMain/appsettings.json index 486d959..d992eb4 100644 --- a/WcsMain/appsettings.json +++ b/WcsMain/appsettings.json @@ -14,7 +14,7 @@ "DBMssqlLocal": "Data Source=192.168.142.131;Initial Catalog=wcs_stacker;User Id=sa;Password=Sa123;", "ApplicationConfig": { - "ApiOnly": false, + "ApiOnly": true, "Language": "zh-CN" }, "UseUrls": [ "http://*:18990" ]