<add>[important]添加前端查询电子标签货位功能

This commit is contained in:
葛林强 2024-06-15 13:54:11 +08:00
commit 520004b056
9 changed files with 123 additions and 24 deletions

View File

@ -0,0 +1,35 @@
using System.Text.Json.Serialization;
namespace WcsMain.ApiServe.Controllers.Dto.WcsDto.ElTag;
public class QueryLocationWithPageRequest
{
/// <summary>
/// 查询的字符串
/// </summary>
[JsonPropertyName("searchStr")]
public string? SearchStr { get; set; }
/// <summary>
/// 分页信息
/// </summary>
[JsonPropertyName("page")]
public ElTagLocationPage? Page { get; set; }
}
public class ElTagLocationPage
{
/// <summary>
/// 每页大小
/// </summary>
[JsonPropertyName("pageSize")]
public int PageSize { get; set; }
/// <summary>
/// 当前页数
/// </summary>
[JsonPropertyName("pageIndex")]
public int PageIndex { get; set; }
}

View File

@ -67,6 +67,15 @@ public class ElTagController(ElTagService elTagService) : ControllerBase
return _elTagService.AddTaskInfo(request); return _elTagService.AddTaskInfo(request);
} }
/// <summary>
/// 分页查询电子标签库位表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("queryLocationWithPage")]
public WcsApiResponse<int, List<AppElTagLocation>> QueryLocationWithPage([FromBody] QueryLocationWithPageRequest request)
{
return _elTagService.QueryLocationWithPage(request);
}
} }

View File

@ -11,10 +11,11 @@ using WcsMain.WcsAttribute.AutoFacAttribute;
namespace WcsMain.ApiServe.Service.WcsService; namespace WcsMain.ApiServe.Service.WcsService;
[Service] [Service]
public class ElTagService(AppElTagTaskDao tagTaskDao, DataBaseData dataBaseData) public class ElTagService(AppElTagTaskDao tagTaskDao, DataBaseData dataBaseData, AppElTagLocationDao tagLocationDao)
{ {
private readonly DataBaseData _dataBaseData = dataBaseData; private readonly DataBaseData _dataBaseData = dataBaseData;
private readonly AppElTagTaskDao _tagTaskDao = tagTaskDao; private readonly AppElTagTaskDao _tagTaskDao = tagTaskDao;
private readonly AppElTagLocationDao _tagLocationDao = tagLocationDao;
/// <summary> /// <summary>
/// 展示电子标签的数字 /// 展示电子标签的数字
@ -41,6 +42,24 @@ public class ElTagService(AppElTagTaskDao tagTaskDao, DataBaseData dataBaseData)
return WcsApiResponseFactory.Success(totalRows, elTagTasks); return WcsApiResponseFactory.Success(totalRows, elTagTasks);
} }
/// <summary>
/// 分页查询电子标签库位
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public WcsApiResponse<int, List<AppElTagLocation>> QueryLocationWithPage(QueryLocationWithPageRequest request)
{
(List<AppElTagLocation>? elTagLocations, int totalRows) = _tagLocationDao.QueryWithPage(request);
if (elTagLocations == default)
{
return WcsApiResponseFactory.DataBaseErr<int, List<AppElTagLocation>>();
}
return WcsApiResponseFactory.Success(totalRows, elTagLocations);
}
/// <summary> /// <summary>
/// 编辑电子标签任务信息 /// 编辑电子标签任务信息
/// </summary> /// </summary>

View File

@ -13,12 +13,12 @@ namespace WcsMain.Business.CirculationTask.ElTag;
[Circulation] [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 AppElTagTaskDao _tagTaskDao = tagTaskDao;
private readonly AtopOperation _atopOperation = atopOperation; private readonly AtopOperation _atopOperation = atopOperation;
private readonly AppElTagBaseDao _elTagBaseDao = elTagBaseDao; private readonly AppElTagLocationDao _elTagBaseDao = elTagBaseDao;
/// <summary> /// <summary>
/// 点亮电子标签 /// 点亮电子标签
@ -81,7 +81,7 @@ public class LightElTag(AppElTagTaskDao tagTaskDao, AtopOperation atopOperation,
TaskStatus = (int)ElTagTaskStatusEnum.Lighting, TaskStatus = (int)ElTagTaskStatusEnum.Lighting,
LightTime = DateTime.Now, 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; return;
} }
ConsoleLog.Warning($"【警告】点亮电子标签失败,点位:{tagTask.Location},数据:{tagTask.NeedNum},载具号:{tagTask.VehicleNo},标签号:{tagInfo.TagId},异常信息:{resultException.Message}"); ConsoleLog.Warning($"【警告】点亮电子标签失败,点位:{tagTask.Location},数据:{tagTask.NeedNum},载具号:{tagTask.VehicleNo},标签号:{tagInfo.TagId},异常信息:{resultException.Message}");

View File

@ -39,7 +39,7 @@ public static class CommonData
/// 电子标签基础资料 /// 电子标签基础资料
/// </summary> /// </summary>
[NotNull] [NotNull]
public static List<AppElTagBase>? AppElTags { get; set; } public static List<AppElTagLocation>? AppElTags { get; set; }
/// <summary> /// <summary>
/// 输送线的站台 /// 输送线的站台

View File

@ -1,11 +1,12 @@
using WcsMain.Common; using WcsMain.ApiServe.Controllers.Dto.WcsDto.ElTag;
using WcsMain.Common;
using WcsMain.DataBase.TableEntity; using WcsMain.DataBase.TableEntity;
using WcsMain.WcsAttribute.AutoFacAttribute; using WcsMain.WcsAttribute.AutoFacAttribute;
namespace WcsMain.DataBase.Dao; namespace WcsMain.DataBase.Dao;
[Component] [Component]
public class AppElTagBaseDao public class AppElTagLocationDao
{ {
/// <summary> /// <summary>
@ -13,11 +14,11 @@ public class AppElTagBaseDao
/// </summary> /// </summary>
/// <param name="queryData"></param> /// <param name="queryData"></param>
/// <returns></returns> /// <returns></returns>
public List<AppElTagBase>? Query(AppElTagBase queryData) public List<AppElTagLocation>? Query(AppElTagLocation queryData)
{ {
try try
{ {
var sqlFuc = CommonTool.DbServe.Queryable<AppElTagBase>() var sqlFuc = CommonTool.DbServe.Queryable<AppElTagLocation>()
.WhereIF(queryData.Location != default, w => w.Location == queryData.Location) .WhereIF(queryData.Location != default, w => w.Location == queryData.Location)
.WhereIF(queryData.TagName != default, w => w.TagName == queryData.TagName) .WhereIF(queryData.TagName != default, w => w.TagName == queryData.TagName)
.WhereIF(queryData.TagId != default, w => w.TagId == queryData.TagId) .WhereIF(queryData.TagId != default, w => w.TagId == queryData.TagId)
@ -40,14 +41,14 @@ public class AppElTagBaseDao
/// 查询所有 /// 查询所有
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public List<AppElTagBase>? Query() => Query(new AppElTagBase()); public List<AppElTagLocation>? Query() => Query(new AppElTagLocation());
/// <summary> /// <summary>
/// 根据主键更新不更新null值 /// 根据主键更新不更新null值
/// </summary> /// </summary>
/// <param name="appElTag"></param> /// <param name="appElTag"></param>
/// <returns></returns> /// <returns></returns>
public int Update(AppElTagBase appElTag) public int Update(AppElTagLocation appElTag)
{ {
try try
{ {
@ -59,9 +60,33 @@ public class AppElTagBaseDao
/// <summary>
/// 分页查询 电子标签库位表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public (List<AppElTagLocation>? elTagLocations, int totalRows) QueryWithPage(QueryLocationWithPageRequest request)
{
try
{
int totalRows = 0;
var sqlFuc = CommonTool.DbServe.Queryable<AppElTagLocation>()
.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 try
{ {
var sqlFuc = CommonTool.DbServe.Updateable<AppElTagBase>() var sqlFuc = CommonTool.DbServe.Updateable<AppElTagLocation>()
.SetColumns(s => s.LastLightTime == null) .SetColumns(s => s.LastLightTime == null)
.SetColumns(s => s.TaskId == null) .SetColumns(s => s.TaskId == null)
.Where(w => w.Location == location); .Where(w => w.Location == location);

View File

@ -1,69 +1,80 @@
using SqlSugar; using SqlSugar;
using System.Text.Json.Serialization;
namespace WcsMain.DataBase.TableEntity; namespace WcsMain.DataBase.TableEntity;
[SugarTable("tbl_app_eltag_base")] [SugarTable("tbl_app_eltag_location")]
public class AppElTagBase public class AppElTagLocation
{ {
/// <summary> /// <summary>
/// 点位 /// 点位
/// </summary> /// </summary>
[SugarColumn(ColumnName = "location", IsPrimaryKey = true)] [SugarColumn(ColumnName = "location", IsPrimaryKey = true)]
[JsonPropertyName("location")]
public string? Location { get; set; } public string? Location { get; set; }
/// <summary> /// <summary>
/// 标签的名称 /// 标签的名称
/// </summary> /// </summary>
[SugarColumn(ColumnName = "tag_name")] [SugarColumn(ColumnName = "tag_name")]
[JsonPropertyName("tagName")]
public string? TagName { get; set; } public string? TagName { get; set; }
/// <summary> /// <summary>
/// 标签的ID /// 标签的ID
/// </summary> /// </summary>
[SugarColumn(ColumnName = "tag_id")] [SugarColumn(ColumnName = "tag_id")]
[JsonPropertyName("tagId")]
public int? TagId { get; set; } public int? TagId { get; set; }
/// <summary> /// <summary>
/// 标签类型 /// 标签类型
/// </summary> /// </summary>
[SugarColumn(ColumnName = "tag_type")] [SugarColumn(ColumnName = "tag_type")]
[JsonPropertyName("tagType")]
public int? TagType { get; set; } public int? TagType { get; set; }
/// <summary> /// <summary>
/// 控制器的别称 /// 控制器的别称
/// </summary> /// </summary>
[SugarColumn(ColumnName = "controller_diaplay_name")] [SugarColumn(ColumnName = "controller_diaplay_name")]
[JsonPropertyName("controllerDisplayName")]
public string? ControllerDisplayName { get; set;} public string? ControllerDisplayName { get; set;}
/// <summary> /// <summary>
/// 所属区域 /// 所属区域
/// </summary> /// </summary>
[SugarColumn(ColumnName = "area")] [SugarColumn(ColumnName = "area")]
[JsonPropertyName("area")]
public string? Area { get; set; } public string? Area { get; set; }
/// <summary> /// <summary>
/// LED灯的默认状态 /// LED灯的默认状态
/// </summary> /// </summary>
[SugarColumn(ColumnName = "led_status")] [SugarColumn(ColumnName = "led_status")]
[JsonPropertyName("ledStatus")]
public int? LedStatus { get; set; } public int? LedStatus { get; set; }
/// <summary> /// <summary>
/// 上次点亮的时间 /// 上次点亮的时间
/// </summary> /// </summary>
[SugarColumn(ColumnName = "last_light_time")] [SugarColumn(ColumnName = "last_light_time")]
[JsonPropertyName("lastLightTime")]
public DateTime? LastLightTime { get; set; } public DateTime? LastLightTime { get; set; }
/// <summary> /// <summary>
/// 当前点亮的任务号 /// 当前点亮的任务号
/// </summary> /// </summary>
[SugarColumn(ColumnName = "task_id")] [SugarColumn(ColumnName = "task_id")]
[JsonPropertyName("taskId")]
public string? TaskId { get; set; } public string? TaskId { get; set; }
/// <summary> /// <summary>
/// 备注 /// 备注
/// </summary> /// </summary>
[SugarColumn(ColumnName = "remark")] [SugarColumn(ColumnName = "remark")]
[JsonPropertyName("remark")]
public string? Remark { get; set; } public string? Remark { get; set; }

View File

@ -14,10 +14,10 @@ namespace WcsMain.ElTag.Atop;
/// 电子标签收到数据的数据处理类 /// 电子标签收到数据的数据处理类
/// </summary> /// </summary>
[Component] [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 AppElTagTaskDao _tagTaskDao = tagTaskDao;
private readonly AtopOperation _atopOperation = atopOperation; private readonly AtopOperation _atopOperation = atopOperation;
@ -59,7 +59,7 @@ public class BaseOprDataHandler(AppElTagBaseDao tagBaseDao, AppElTagTaskDao tagT
{ {
// _atopOperation.ShowMsgOnly(tcpServe.ControllerDisplayName, tcpServe.TagId, tcpServe.Data); // 重新点亮标签,仅显示字符 // _atopOperation.ShowMsgOnly(tcpServe.ControllerDisplayName, tcpServe.TagId, tcpServe.Data); // 重新点亮标签,仅显示字符
/* 找出这个标签最新点亮的那条记录 */ /* 找出这个标签最新点亮的那条记录 */
List<AppElTagBase>? eltags = _tagBaseDao.Query(new AppElTagBase { ControllerDisplayName = tcpServe.ControllerDisplayName, TagId = tcpServe.TagId }); List<AppElTagLocation>? eltags = _tagBaseDao.Query(new AppElTagLocation { ControllerDisplayName = tcpServe.ControllerDisplayName, TagId = tcpServe.TagId });
if(eltags == default) if(eltags == default)
{ {
ConsoleLog.Exception($"【异常】电子标签确认查询数据库标签信息失败,与数据库服务器连连接中断,控制器:{tcpServe.ControllerDisplayName},标签号:{tcpServe.TagId},数据:{tcpServe.Data}"); ConsoleLog.Exception($"【异常】电子标签确认查询数据库标签信息失败,与数据库服务器连连接中断,控制器:{tcpServe.ControllerDisplayName},标签号:{tcpServe.TagId},数据:{tcpServe.Data}");

View File

@ -19,7 +19,7 @@ namespace WcsMain.StartAction;
[Component] [Component]
public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs, SocketOperation socketOperation, public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs, SocketOperation socketOperation,
AppStackerDao appStackerDao, AppLocationDao appLocationDao, AppConfigDao appConfigDao, ConnectPlcServe connectPlcServe, 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 AppConfigDao _appconfigDao = appConfigDao;
private readonly AppLocationDao _applocationDao = appLocationDao; private readonly AppLocationDao _applocationDao = appLocationDao;
@ -29,7 +29,7 @@ public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs
private readonly WcsCirculation _wcsCirculation = wcsCirculation; private readonly WcsCirculation _wcsCirculation = wcsCirculation;
private readonly ConnectPlcServe _connectPlcServe = connectPlcServe; private readonly ConnectPlcServe _connectPlcServe = connectPlcServe;
private readonly ConnectOprServe _connectOprServe = connectOprServe; private readonly ConnectOprServe _connectOprServe = connectOprServe;
private readonly AppElTagBaseDao _appElTagBaseDao = appElTagBaseDao; private readonly AppElTagLocationDao _appElTagBaseDao = appElTagBaseDao;
private readonly AppConveyStandDao _conveyStandDao = conveyStandDao; private readonly AppConveyStandDao _conveyStandDao = conveyStandDao;
private static string _errMsg = string.Empty; private static string _errMsg = string.Empty;
@ -206,7 +206,7 @@ public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs
{ {
if (!string.IsNullOrEmpty(_errMsg)) return; if (!string.IsNullOrEmpty(_errMsg)) return;
//ConsoleLog.Info("正在电子标签基础资料信息..."); //ConsoleLog.Info("正在电子标签基础资料信息...");
List<AppElTagBase>? eltags = _appElTagBaseDao.Query(); List<AppElTagLocation>? eltags = _appElTagBaseDao.Query();
if (eltags == default) if (eltags == default)
{ {
_errMsg = "加载电子标签基础信息失败,请检查数据库服务器连接是否正常"; _errMsg = "加载电子标签基础信息失败,请检查数据库服务器连接是否正常";