diff --git a/WcsMain/ApiServe/Controllers/Dto/WcsDto/ElTag/QueryLocationWithPageRequest.cs b/WcsMain/ApiServe/Controllers/Dto/WcsDto/ElTag/QueryLocationWithPageRequest.cs new file mode 100644 index 0000000..ba57b80 --- /dev/null +++ b/WcsMain/ApiServe/Controllers/Dto/WcsDto/ElTag/QueryLocationWithPageRequest.cs @@ -0,0 +1,35 @@ +using System.Text.Json.Serialization; + +namespace WcsMain.ApiServe.Controllers.Dto.WcsDto.ElTag; + +public class QueryLocationWithPageRequest +{ + /// + /// 查询的字符串 + /// + [JsonPropertyName("searchStr")] + public string? SearchStr { get; set; } + + /// + /// 分页信息 + /// + [JsonPropertyName("page")] + public ElTagLocationPage? Page { get; set; } +} + +public class ElTagLocationPage +{ + /// + /// 每页大小 + /// + [JsonPropertyName("pageSize")] + public int PageSize { get; set; } + + /// + /// 当前页数 + /// + [JsonPropertyName("pageIndex")] + public int PageIndex { get; set; } + +} + diff --git a/WcsMain/ApiServe/Controllers/WcsController/ElTagController.cs b/WcsMain/ApiServe/Controllers/WcsController/ElTagController.cs index f8d4df1..4cb4045 100644 --- a/WcsMain/ApiServe/Controllers/WcsController/ElTagController.cs +++ b/WcsMain/ApiServe/Controllers/WcsController/ElTagController.cs @@ -67,6 +67,15 @@ public class ElTagController(ElTagService elTagService) : ControllerBase return _elTagService.AddTaskInfo(request); } - + /// + /// 分页查询电子标签库位表 + /// + /// + /// + [HttpPost("queryLocationWithPage")] + public WcsApiResponse> QueryLocationWithPage([FromBody] QueryLocationWithPageRequest request) + { + return _elTagService.QueryLocationWithPage(request); + } } diff --git a/WcsMain/ApiServe/Service/WcsService/ElTagService.cs b/WcsMain/ApiServe/Service/WcsService/ElTagService.cs index a7a415a..cac5c6f 100644 --- a/WcsMain/ApiServe/Service/WcsService/ElTagService.cs +++ b/WcsMain/ApiServe/Service/WcsService/ElTagService.cs @@ -11,10 +11,11 @@ using WcsMain.WcsAttribute.AutoFacAttribute; namespace WcsMain.ApiServe.Service.WcsService; [Service] -public class ElTagService(AppElTagTaskDao tagTaskDao, DataBaseData dataBaseData) +public class ElTagService(AppElTagTaskDao tagTaskDao, DataBaseData dataBaseData, AppElTagLocationDao tagLocationDao) { private readonly DataBaseData _dataBaseData = dataBaseData; private readonly AppElTagTaskDao _tagTaskDao = tagTaskDao; + private readonly AppElTagLocationDao _tagLocationDao = tagLocationDao; /// /// 展示电子标签的数字 @@ -41,6 +42,24 @@ public class ElTagService(AppElTagTaskDao tagTaskDao, DataBaseData dataBaseData) return WcsApiResponseFactory.Success(totalRows, elTagTasks); } + + /// + /// 分页查询电子标签库位 + /// + /// + /// + public WcsApiResponse> QueryLocationWithPage(QueryLocationWithPageRequest request) + { + (List? elTagLocations, int totalRows) = _tagLocationDao.QueryWithPage(request); + if (elTagLocations == default) + { + return WcsApiResponseFactory.DataBaseErr>(); + } + return WcsApiResponseFactory.Success(totalRows, elTagLocations); + } + + + /// /// 编辑电子标签任务信息 /// diff --git a/WcsMain/Business/CirculationTask/ElTag/LightElTag.cs b/WcsMain/Business/CirculationTask/ElTag/LightElTag.cs index 0377360..a8c8b14 100644 --- a/WcsMain/Business/CirculationTask/ElTag/LightElTag.cs +++ b/WcsMain/Business/CirculationTask/ElTag/LightElTag.cs @@ -13,12 +13,12 @@ namespace WcsMain.Business.CirculationTask.ElTag; [Circulation] -public class LightElTag(AppElTagTaskDao tagTaskDao, AtopOperation atopOperation, AppElTagBaseDao elTagBaseDao) +public class LightElTag(AppElTagTaskDao tagTaskDao, AtopOperation atopOperation, AppElTagLocationDao elTagBaseDao) { private readonly AppElTagTaskDao _tagTaskDao = tagTaskDao; private readonly AtopOperation _atopOperation = atopOperation; - private readonly AppElTagBaseDao _elTagBaseDao = elTagBaseDao; + private readonly AppElTagLocationDao _elTagBaseDao = elTagBaseDao; /// /// 点亮电子标签 @@ -81,7 +81,7 @@ public class LightElTag(AppElTagTaskDao tagTaskDao, AtopOperation atopOperation, TaskStatus = (int)ElTagTaskStatusEnum.Lighting, LightTime = DateTime.Now, }); // 更新任务状态 - _elTagBaseDao.Update(new AppElTagBase { Location = tagTask.Location, TaskId = tagTask.TaskId, LastLightTime = DateTime.Now }); // 更新点位状态,绑定任务 + _elTagBaseDao.Update(new AppElTagLocation { Location = tagTask.Location, TaskId = tagTask.TaskId, LastLightTime = DateTime.Now }); // 更新点位状态,绑定任务 return; } ConsoleLog.Warning($"【警告】点亮电子标签失败,点位:{tagTask.Location},数据:{tagTask.NeedNum},载具号:{tagTask.VehicleNo},标签号:{tagInfo.TagId},异常信息:{resultException.Message}"); diff --git a/WcsMain/Common/CommonData.cs b/WcsMain/Common/CommonData.cs index da5a300..490f087 100644 --- a/WcsMain/Common/CommonData.cs +++ b/WcsMain/Common/CommonData.cs @@ -39,7 +39,7 @@ public static class CommonData /// 电子标签基础资料 /// [NotNull] - public static List? AppElTags { get; set; } + public static List? AppElTags { get; set; } /// /// 输送线的站台 diff --git a/WcsMain/DataBase/Dao/AppElTagBaseDao.cs b/WcsMain/DataBase/Dao/AppElTagLocationDao.cs similarity index 60% rename from WcsMain/DataBase/Dao/AppElTagBaseDao.cs rename to WcsMain/DataBase/Dao/AppElTagLocationDao.cs index 2d000b3..7122d28 100644 --- a/WcsMain/DataBase/Dao/AppElTagBaseDao.cs +++ b/WcsMain/DataBase/Dao/AppElTagLocationDao.cs @@ -1,11 +1,12 @@ -using WcsMain.Common; +using WcsMain.ApiServe.Controllers.Dto.WcsDto.ElTag; +using WcsMain.Common; using WcsMain.DataBase.TableEntity; using WcsMain.WcsAttribute.AutoFacAttribute; namespace WcsMain.DataBase.Dao; [Component] -public class AppElTagBaseDao +public class AppElTagLocationDao { /// @@ -13,11 +14,11 @@ public class AppElTagBaseDao /// /// /// - public List? Query(AppElTagBase queryData) + public List? Query(AppElTagLocation queryData) { try { - var sqlFuc = CommonTool.DbServe.Queryable() + var sqlFuc = CommonTool.DbServe.Queryable() .WhereIF(queryData.Location != default, w => w.Location == queryData.Location) .WhereIF(queryData.TagName != default, w => w.TagName == queryData.TagName) .WhereIF(queryData.TagId != default, w => w.TagId == queryData.TagId) @@ -40,14 +41,14 @@ public class AppElTagBaseDao /// 查询所有 /// /// - public List? Query() => Query(new AppElTagBase()); + public List? Query() => Query(new AppElTagLocation()); /// /// 根据主键更新,不更新null值 /// /// /// - public int Update(AppElTagBase appElTag) + public int Update(AppElTagLocation appElTag) { try { @@ -59,9 +60,33 @@ public class AppElTagBaseDao - - - + /// + /// 分页查询 电子标签库位表 + /// + /// + /// + public (List? elTagLocations, int totalRows) QueryWithPage(QueryLocationWithPageRequest request) + { + try + { + int totalRows = 0; + var sqlFuc = CommonTool.DbServe.Queryable() + .WhereIF(!string.IsNullOrEmpty(request.SearchStr), + w => w.TaskId!.Contains(request.SearchStr!) + || w.Location!.Contains(request.SearchStr!) + || w.TagName!.Contains(request.SearchStr!) + || w.ControllerDisplayName!.Contains(request.SearchStr!) + || w.Remark!.Contains(request.SearchStr!)); + sqlFuc.OrderBy(o => new { o.Location }); + var queryResult = sqlFuc.ToPageList(request.Page!.PageIndex, request.Page!.PageSize, ref totalRows); + return (queryResult, totalRows); + } + catch (Exception ex) + { + _ = ex; + return default; + } + } @@ -79,7 +104,7 @@ public class AppElTagBaseDao { try { - var sqlFuc = CommonTool.DbServe.Updateable() + var sqlFuc = CommonTool.DbServe.Updateable() .SetColumns(s => s.LastLightTime == null) .SetColumns(s => s.TaskId == null) .Where(w => w.Location == location); diff --git a/WcsMain/DataBase/TableEntity/AppElTagBase.cs b/WcsMain/DataBase/TableEntity/AppElTagLocation.cs similarity index 77% rename from WcsMain/DataBase/TableEntity/AppElTagBase.cs rename to WcsMain/DataBase/TableEntity/AppElTagLocation.cs index 7621545..4611483 100644 --- a/WcsMain/DataBase/TableEntity/AppElTagBase.cs +++ b/WcsMain/DataBase/TableEntity/AppElTagLocation.cs @@ -1,69 +1,80 @@ using SqlSugar; +using System.Text.Json.Serialization; namespace WcsMain.DataBase.TableEntity; -[SugarTable("tbl_app_eltag_base")] -public class AppElTagBase +[SugarTable("tbl_app_eltag_location")] +public class AppElTagLocation { /// /// 点位 /// [SugarColumn(ColumnName = "location", IsPrimaryKey = true)] + [JsonPropertyName("location")] public string? Location { get; set; } /// /// 标签的名称 /// [SugarColumn(ColumnName = "tag_name")] + [JsonPropertyName("tagName")] public string? TagName { get; set; } /// /// 标签的ID /// [SugarColumn(ColumnName = "tag_id")] + [JsonPropertyName("tagId")] public int? TagId { get; set; } /// /// 标签类型 /// [SugarColumn(ColumnName = "tag_type")] + [JsonPropertyName("tagType")] public int? TagType { get; set; } /// /// 控制器的别称 /// [SugarColumn(ColumnName = "controller_diaplay_name")] + [JsonPropertyName("controllerDisplayName")] public string? ControllerDisplayName { get; set;} /// /// 所属区域 /// [SugarColumn(ColumnName = "area")] + [JsonPropertyName("area")] public string? Area { get; set; } /// /// LED灯的默认状态 /// [SugarColumn(ColumnName = "led_status")] + [JsonPropertyName("ledStatus")] public int? LedStatus { get; set; } /// /// 上次点亮的时间 /// [SugarColumn(ColumnName = "last_light_time")] + [JsonPropertyName("lastLightTime")] public DateTime? LastLightTime { get; set; } /// /// 当前点亮的任务号 /// [SugarColumn(ColumnName = "task_id")] + [JsonPropertyName("taskId")] public string? TaskId { get; set; } /// /// 备注 /// [SugarColumn(ColumnName = "remark")] + [JsonPropertyName("remark")] public string? Remark { get; set; } diff --git a/WcsMain/ElTag/Atop/BaseOprDataHandler.cs b/WcsMain/ElTag/Atop/BaseOprDataHandler.cs index 194da9d..baf0e4c 100644 --- a/WcsMain/ElTag/Atop/BaseOprDataHandler.cs +++ b/WcsMain/ElTag/Atop/BaseOprDataHandler.cs @@ -14,10 +14,10 @@ namespace WcsMain.ElTag.Atop; /// 电子标签收到数据的数据处理类 /// [Component] -public class BaseOprDataHandler(AppElTagBaseDao tagBaseDao, AppElTagTaskDao tagTaskDao, AtopOperation atopOperation) +public class BaseOprDataHandler(AppElTagLocationDao tagBaseDao, AppElTagTaskDao tagTaskDao, AtopOperation atopOperation) { - private readonly AppElTagBaseDao _tagBaseDao = tagBaseDao; + private readonly AppElTagLocationDao _tagBaseDao = tagBaseDao; private readonly AppElTagTaskDao _tagTaskDao = tagTaskDao; private readonly AtopOperation _atopOperation = atopOperation; @@ -59,7 +59,7 @@ public class BaseOprDataHandler(AppElTagBaseDao tagBaseDao, AppElTagTaskDao tagT { // _atopOperation.ShowMsgOnly(tcpServe.ControllerDisplayName, tcpServe.TagId, tcpServe.Data); // 重新点亮标签,仅显示字符 /* 找出这个标签最新点亮的那条记录 */ - List? eltags = _tagBaseDao.Query(new AppElTagBase { 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}"); diff --git a/WcsMain/StartAction/ServiceStart.cs b/WcsMain/StartAction/ServiceStart.cs index 796a55d..51a68f2 100644 --- a/WcsMain/StartAction/ServiceStart.cs +++ b/WcsMain/StartAction/ServiceStart.cs @@ -19,7 +19,7 @@ namespace WcsMain.StartAction; [Component] public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs, SocketOperation socketOperation, AppStackerDao appStackerDao, AppLocationDao appLocationDao, AppConfigDao appConfigDao, ConnectPlcServe connectPlcServe, - ConnectOprServe connectOprServe, AppElTagBaseDao appElTagBaseDao, AppConveyStandDao conveyStandDao) + ConnectOprServe connectOprServe, AppElTagLocationDao appElTagBaseDao, AppConveyStandDao conveyStandDao) { private readonly AppConfigDao _appconfigDao = appConfigDao; private readonly AppLocationDao _applocationDao = appLocationDao; @@ -29,7 +29,7 @@ public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs private readonly WcsCirculation _wcsCirculation = wcsCirculation; private readonly ConnectPlcServe _connectPlcServe = connectPlcServe; private readonly ConnectOprServe _connectOprServe = connectOprServe; - private readonly AppElTagBaseDao _appElTagBaseDao = appElTagBaseDao; + private readonly AppElTagLocationDao _appElTagBaseDao = appElTagBaseDao; private readonly AppConveyStandDao _conveyStandDao = conveyStandDao; private static string _errMsg = string.Empty; @@ -206,7 +206,7 @@ public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs { if (!string.IsNullOrEmpty(_errMsg)) return; //ConsoleLog.Info("正在电子标签基础资料信息..."); - List? eltags = _appElTagBaseDao.Query(); + List? eltags = _appElTagBaseDao.Query(); if (eltags == default) { _errMsg = "加载电子标签基础信息失败,请检查数据库服务器连接是否正常";