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" ]